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.

Reply via email to