diff options
Diffstat (limited to 'drivers/usb/core/urb.c')
| -rw-r--r-- | drivers/usb/core/urb.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c index e0d9d948218..16927fa88fb 100644 --- a/drivers/usb/core/urb.c +++ b/drivers/usb/core/urb.c @@ -683,10 +683,13 @@ EXPORT_SYMBOL_GPL(usb_kill_urb);  void usb_poison_urb(struct urb *urb)  {  	might_sleep(); -	if (!(urb && urb->dev && urb->ep)) +	if (!urb)  		return;  	atomic_inc(&urb->reject); +	if (!urb->dev || !urb->ep) +		return; +  	usb_hcd_unlink_urb(urb, -ENOENT);  	wait_event(usb_kill_urb_queue, atomic_read(&urb->use_count) == 0);  }  |