Browse Source

HID: Never call hid_free_buffers() when usbhid_device has been freed

We can't call hid_free_buffers() when the underlying usbhid_device
has already been freed.

Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Jiri Kosina 18 years ago
parent
commit
22f675f320
1 changed files with 2 additions and 2 deletions
  1. 2 2
      drivers/hid/usbhid/hid-core.c

+ 2 - 2
drivers/hid/usbhid/hid-core.c

@@ -877,9 +877,9 @@ fail:
 	usb_free_urb(usbhid->urbin);
 	usb_free_urb(usbhid->urbout);
 	usb_free_urb(usbhid->urbctrl);
+	hid_free_buffers(dev, hid);
 	kfree(usbhid);
 fail_no_usbhid:
-	hid_free_buffers(dev, hid);
 	hid_free_device(hid);
 
 	return NULL;
@@ -913,9 +913,9 @@ static void hid_disconnect(struct usb_interface *intf)
 	usb_free_urb(usbhid->urbin);
 	usb_free_urb(usbhid->urbctrl);
 	usb_free_urb(usbhid->urbout);
-	kfree(usbhid);
 
 	hid_free_buffers(hid_to_usb_dev(hid), hid);
+	kfree(usbhid);
 	hid_free_device(hid);
 }