USB: report submission of active URBs
This patch (as1633) changes slightly the way usbcore handled submissions of URBs that are already active. It will now return -EBUSY rather than -EINVAL, and it will call WARN_ONCE to draw people's attention to the bug. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
2656a9abcf
commit
2f02bc8af3
2 changed files with 8 additions and 1 deletions
|
@ -21,6 +21,8 @@ Non-USB-specific:
|
||||||
|
|
||||||
USB-specific:
|
USB-specific:
|
||||||
|
|
||||||
|
-EBUSY The URB is already active.
|
||||||
|
|
||||||
-ENODEV specified USB-device or bus doesn't exist
|
-ENODEV specified USB-device or bus doesn't exist
|
||||||
|
|
||||||
-ENOENT specified interface or endpoint does not exist or
|
-ENOENT specified interface or endpoint does not exist or
|
||||||
|
|
|
@ -321,8 +321,13 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
|
||||||
struct usb_host_endpoint *ep;
|
struct usb_host_endpoint *ep;
|
||||||
int is_out;
|
int is_out;
|
||||||
|
|
||||||
if (!urb || urb->hcpriv || !urb->complete)
|
if (!urb || !urb->complete)
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
if (urb->hcpriv) {
|
||||||
|
WARN_ONCE(1, "URB %p submitted while active\n", urb);
|
||||||
|
return -EBUSY;
|
||||||
|
}
|
||||||
|
|
||||||
dev = urb->dev;
|
dev = urb->dev;
|
||||||
if ((!dev) || (dev->state < USB_STATE_UNAUTHENTICATED))
|
if ((!dev) || (dev->state < USB_STATE_UNAUTHENTICATED))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
Loading…
Reference in a new issue