Commit d6b7d3b6 authored by Alan Stern's avatar Alan Stern Committed by Linus Torvalds

[PATCH] usb-storage: wait for URB to complete

We all failed to notice that Franck's recent update to usb-storage allowed
an URB to complete after its context data was no longer valid.  This patch
(as746) makes the driver wait for the URB to complete whenever there's a
timeout.

Although timeouts in usb-storage are relatively uncommon, they do occur.
Without this patch the code in 2.6.18-rc1 will fault within an interrupt
handler, which is not nice at all.
Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Cc: Greg KH <greg@kroah.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 82081797
...@@ -180,7 +180,7 @@ static int usb_stor_msg_common(struct us_data *us, int timeout) ...@@ -180,7 +180,7 @@ static int usb_stor_msg_common(struct us_data *us, int timeout)
if (timeleft <= 0) { if (timeleft <= 0) {
US_DEBUGP("%s -- cancelling URB\n", US_DEBUGP("%s -- cancelling URB\n",
timeleft == 0 ? "Timeout" : "Signal"); timeleft == 0 ? "Timeout" : "Signal");
usb_unlink_urb(us->current_urb); usb_kill_urb(us->current_urb);
} }
/* return the URB status */ /* return the URB status */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment