Re: [PATCH] USB: usbfs: Suppress emission of uevents for interfaces handled via usbfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux