]> git.neil.brown.name Git - history.git/commitdiff
usb hid driver:
authorVojtech Pavlik <vojtech@suse.cz>
Tue, 12 Feb 2002 14:48:06 +0000 (06:48 -0800)
committerVojtech Pavlik <vojtech@suse.cz>
Tue, 12 Feb 2002 14:48:06 +0000 (06:48 -0800)
- patch to fix bug where urbs were freed too soon.

drivers/usb/hid-core.c

index bb487fcdefda8f4de4df6c688776aaec135cff31..d81bcd9360ae4f19883188f6d8a66cea430e8a26 100644 (file)
@@ -1431,15 +1431,10 @@ static void hid_disconnect(struct usb_device *dev, void *ptr)
 {
        struct hid_device *hid = ptr;
 
-       dbg("cleanup called");
        usb_unlink_urb(hid->urbin);
        usb_unlink_urb(hid->urbout);
        usb_unlink_urb(hid->urbctrl);
 
-       usb_free_urb(hid->urbin);
-       usb_free_urb(hid->urbctrl);
-       if (hid->urbout)
-               usb_free_urb(hid->urbout);
 
        if (hid->claimed & HID_CLAIMED_INPUT)
                hidinput_disconnect(hid);
@@ -1447,6 +1442,12 @@ static void hid_disconnect(struct usb_device *dev, void *ptr)
        if (hid->claimed & HID_CLAIMED_HIDDEV)
                hiddev_disconnect(hid);
 #endif
+
+       usb_free_urb(hid->urbin);
+       usb_free_urb(hid->urbctrl);
+       if (hid->urbout)
+               usb_free_urb(hid->urbout);
+
        hid_free_device(hid);
 }