<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;"># This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.295   -&gt; 1.296  
#	drivers/usb/hid-core.c	1.12    -&gt; 1.13   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 02/02/12	vojtech@suse.cz	1.296
# usb hid driver:
# 	- patch to fix bug where urbs were freed too soon.
# --------------------------------------------
#
diff -Nru a/drivers/usb/hid-core.c b/drivers/usb/hid-core.c
--- a/drivers/usb/hid-core.c	Tue Feb 12 22:58:00 2002
+++ b/drivers/usb/hid-core.c	Tue Feb 12 22:58:00 2002
@@ -1431,15 +1431,10 @@
 {
 	struct hid_device *hid = ptr;
 
-	dbg("cleanup called");
 	usb_unlink_urb(hid-&gt;urbin);
 	usb_unlink_urb(hid-&gt;urbout);
 	usb_unlink_urb(hid-&gt;urbctrl);
 
-	usb_free_urb(hid-&gt;urbin);
-	usb_free_urb(hid-&gt;urbctrl);
-	if (hid-&gt;urbout)
-		usb_free_urb(hid-&gt;urbout);
 
 	if (hid-&gt;claimed &amp; HID_CLAIMED_INPUT)
 		hidinput_disconnect(hid);
@@ -1447,6 +1442,12 @@
 	if (hid-&gt;claimed &amp; HID_CLAIMED_HIDDEV)
 		hiddev_disconnect(hid);
 #endif
+
+	usb_free_urb(hid-&gt;urbin);
+	usb_free_urb(hid-&gt;urbctrl);
+	if (hid-&gt;urbout)
+		usb_free_urb(hid-&gt;urbout);
+
 	hid_free_device(hid);
 }
 
</pre></body></html>