diff options
| -rw-r--r-- | drivers/usb/host/xhci.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index 295a0a2063a6..89ac48534099 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c | |||
| @@ -897,7 +897,12 @@ int xhci_urb_enqueue(struct usb_hcd *hcd, struct urb *urb, gfp_t mem_flags) | |||
| 897 | slot_id, ep_index); | 897 | slot_id, ep_index); |
| 898 | spin_unlock_irqrestore(&xhci->lock, flags); | 898 | spin_unlock_irqrestore(&xhci->lock, flags); |
| 899 | } else { | 899 | } else { |
| 900 | ret = -EINVAL; | 900 | spin_lock_irqsave(&xhci->lock, flags); |
| 901 | if (xhci->xhc_state & XHCI_STATE_DYING) | ||
| 902 | goto dying; | ||
| 903 | ret = xhci_queue_isoc_tx_prepare(xhci, GFP_ATOMIC, urb, | ||
| 904 | slot_id, ep_index); | ||
| 905 | spin_unlock_irqrestore(&xhci->lock, flags); | ||
| 901 | } | 906 | } |
| 902 | exit: | 907 | exit: |
| 903 | return ret; | 908 | return ret; |
