Hello Greg
> > + else {
> > + /* suppress uevents for devices handled by usbfs */
> > + dev_set_uevent_suppress(&intf->dev, 1);
> > err = usb_driver_claim_interface(&usbfs_driver, intf, ps);
> > + if (err != 0)
> > + dev_set_uevent_suppress(&intf->dev, 0);
> Did checkpatch let this go through? Shouldn't that be:
> if (err)
I actually wanted it the way it is, but it really might not be the best option.
Let me explain:
The main goal was to suppress bind/unbind uevents produced by libusb
or any other user space program which calls
ioctl USBDEVFS_CLAIMINTERFACE/USBDEVFS_RELEASEINTERFACE .
Now I can suppress uevents produced by usb_driver_claim_interface
with the code above.
But I was not sure how to handle the call to usb_driver_release_interface
from devio.c/releaseintf()
The strategy I used was:
1) Set suppression of uevents when user space program tries to claim interface
2) If claiming the interface works, then KEEP uevents suppressed,
otherwise undo suppression.
That's why its "if err !=0"; error happened => undo suppression.
3) When interface is released make sure suppression is undone AFTER unbinding
the driver.
Thinking about your comment: It might be better + simpler to just use
1) Suppress uevents when calling usb_driver_claim_interface. Undo suppression
right after the call.
2) Suppress uevents when calling usb_driver_release_interface. Undo suppression
right after the call.
The main semantic problem I do not know about:
Is it correct to modify uevent suppression of an USB interface device
even if it CANNOT be claimed by usbfs ?
I grepped the source code for usage of dev_set_uevent_suppress, but it seems
not to be 100%
clear how that should be used (sometimes uevents are only suppressed
temporarily to implement
a delay, sometimes they are actually kept suppressed).
I will prepare/send an alternative.
with best regards
Ingo
PS:
> ...
> No need for this in the changelog body :)
I should have read the documentation about how to send correct E-Mails for
patches more intensively.
I just found out about "git send-email" and had not set it up (did now...). I
am sorry.
> And did you send this patch twice?
Unfortunately yes: I was struggling how to format this correctly.