ChangeSet 1.1504.2.30, 2003/12/09 18:05:06-08:00, [EMAIL PROTECTED] [PATCH] USB: usb_hcd_unlink_urb() test for list membership
This is a minor cleanup that replaces a test for non-null urb->hcpriv with "is the urb on this list". HCDs don't need to use hcpriv in that way, and in general this is a safer way to test that. (AIO does much the same thing in its kiocb cancelation paths.) drivers/usb/core/hcd.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletion(-) diff -Nru a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c --- a/drivers/usb/core/hcd.c Mon Dec 29 14:23:39 2003 +++ b/drivers/usb/core/hcd.c Mon Dec 29 14:23:39 2003 @@ -1165,6 +1165,7 @@ struct device *sys = 0; unsigned long flags; struct completion_splice splice; + struct list_head *tmp; int retval; if (!urb) @@ -1203,7 +1204,12 @@ */ WARN_ON (!HCD_IS_RUNNING (hcd->state) && hcd->state != USB_STATE_HALT); - if (!urb->hcpriv) { + /* insist the urb is still queued */ + list_for_each(tmp, &dev->urb_list) { + if (tmp == &urb->urb_list) + break; + } + if (tmp != &urb->urb_list) { retval = -EINVAL; goto done; } ------------------------------------------------------- This SF.net email is sponsored by: IBM Linux Tutorials. Become an expert in LINUX or just sharpen your skills. Sign up for IBM's Free Linux Tutorials. Learn everything from the bash shell to sys admin. Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel