From: Jiri Kosina Date: Wed, 1 Aug 2007 10:32:27 +0000 (+0200) Subject: HID: Never call hid_free_buffers() when usbhid_device has been freed X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=22f675f320f721e9eaa2bbf7b883316b408c6c8f;p=openwrt%2Fstaging%2Fblogic.git 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 --- diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c index 6e7393460ead..0a1f2b52a12f 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/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); }