On Wednesday 14 April 2004 15:30, Oliver Neukum wrote:
> Am Mittwoch, 14. April 2004 12:45 schrieb Duncan Sands:
> > The remaining three patches contain miscellaneous fixes to usbfs.
> > This one fixes up the disconnect callback to only shoot down urbs
> > on the disconnected interface, and not on all interfaces.  It also adds
> > a sanity check (this check is pointless because the interface could
> > never have been claimed in the first place if it failed, but I feel
> > better having it there).
>
> Well, I don't. If you care about it, add a WARN_ON().
> Checking without consequences is bad.

Hi Oliver, how about this instead?

--- gregkh-2.6/drivers/usb/core/devio.c.orig    2004-04-14 16:02:44.000000000 +0200
+++ gregkh-2.6/drivers/usb/core/devio.c 2004-04-14 16:57:15.000000000 +0200
@@ -335,6 +341,7 @@
 static void driver_disconnect(struct usb_interface *intf)
 {
        struct dev_state *ps = usb_get_intfdata (intf);
+       unsigned int ifnum = intf->altsetting->desc.bInterfaceNumber;
 
        if (!ps)
                return;
@@ -343,13 +350,15 @@
         * all pending I/O requests; 2.6 does that.
         */
 
-       /* prevent new I/O requests */
-       ps->dev = 0;
-       clear_bit(intf->cur_altsetting->desc.bInterfaceNumber, &ps->ifclaimed);
+       if (ifnum < 8*sizeof(ps->ifclaimed))
+               clear_bit(ifnum, &ps->ifclaimed);
+       else
+               warn("interface number %u out of range", ifnum);
+
        usb_set_intfdata (intf, NULL);
 
        /* force async requests to complete */
-       destroy_all_async (ps);
+       destroy_async_on_interface(ps, ifnum);
 }
 
 struct usb_driver usbdevfs_driver = {


-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to