[2 USB patches to be applied to the latest -bk tree, both fixing real
bugs. I figured it's easier than creating a whole bk tree for them]



This patch fixes a bug in the usbfs code.  The driver is too zealous about
checking for disconnected devices before doing things.  In particular, it
is necessary to reap all outstanding asynchronous URBs and unbind from
interfaces when the device file is closed, even if the device is no longer
connected.

Signed-off-by: Alan Stern <[EMAIL PROTECTED]>
Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>

diff -Nru a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
--- a/drivers/usb/core/devio.c  2004-12-16 15:35:55 -08:00
+++ b/drivers/usb/core/devio.c  2004-12-16 15:35:55 -08:00
@@ -523,13 +523,12 @@
 
        usb_lock_device(dev);
        list_del_init(&ps->list);
-
-       if (connected(dev)) {
-               for (ifnum = 0; ps->ifclaimed && ifnum < 
8*sizeof(ps->ifclaimed); ifnum++)
-                       if (test_bit(ifnum, &ps->ifclaimed))
-                               releaseintf(ps, ifnum);
-               destroy_all_async(ps);
+       for (ifnum = 0; ps->ifclaimed && ifnum < 8*sizeof(ps->ifclaimed);
+                       ifnum++) {
+               if (test_bit(ifnum, &ps->ifclaimed))
+                       releaseintf(ps, ifnum);
        }
+       destroy_all_async(ps);
        usb_unlock_device(dev);
        usb_put_dev(dev);
        ps->dev = NULL;
@@ -1034,7 +1033,7 @@
        int ret;
 
        add_wait_queue(&ps->wait, &wait);
-       while (connected(dev)) {
+       for (;;) {
                __set_current_state(TASK_INTERRUPTIBLE);
                if ((as = async_getcompleted(ps)))
                        break;


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now. 
http://productguide.itmanagersjournal.com/
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to