Oliver Neukum wrote:
Hi,

this addresses the FIXME in devio.c::proc_ioctl() and makes
BKL usage in this function correct.
Good ...


But the USBDEVFS_DISCONNECT ioctl is still fundamentally
broken.
Switching drivers for a device must be atomic with one
ioctl, else there's a race which you cannot fix. The locking
must be done in kernel space.
A similar race exists for usage through usbfs, only that
there's no simple fix. Comments?
You misunderstand what it's supposed to do. The idea
is to put the interface into the same state it's in
before any driver binds to it. There's no reason for
that to be anything other than atomic: race-free.

If there's a race binding to some other driver (one
more appropriate to the application), that race would
be present in _all_ binding paths ... there should be
nothing unique to doing it through usbfs.

- Dave






-------------------------------------------------------
This SF.net email is sponsored by: Get the new Palm Tungsten T handheld. Power & Color in a compact size! http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0002en
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to