diff options
Diffstat (limited to 'drivers/usb/host/xhci-ring.c')
-rw-r--r-- | drivers/usb/host/xhci-ring.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c index de7dce6eb474..ece0787d62bf 100644 --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c | |||
@@ -856,13 +856,16 @@ static void xhci_kill_endpoint_urbs(struct xhci_hcd *xhci, | |||
856 | (ep->ep_state & EP_GETTING_NO_STREAMS)) { | 856 | (ep->ep_state & EP_GETTING_NO_STREAMS)) { |
857 | int stream_id; | 857 | int stream_id; |
858 | 858 | ||
859 | for (stream_id = 0; stream_id < ep->stream_info->num_streams; | 859 | for (stream_id = 1; stream_id < ep->stream_info->num_streams; |
860 | stream_id++) { | 860 | stream_id++) { |
861 | ring = ep->stream_info->stream_rings[stream_id]; | ||
862 | if (!ring) | ||
863 | continue; | ||
864 | |||
861 | xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb, | 865 | xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb, |
862 | "Killing URBs for slot ID %u, ep index %u, stream %u", | 866 | "Killing URBs for slot ID %u, ep index %u, stream %u", |
863 | slot_id, ep_index, stream_id + 1); | 867 | slot_id, ep_index, stream_id); |
864 | xhci_kill_ring_urbs(xhci, | 868 | xhci_kill_ring_urbs(xhci, ring); |
865 | ep->stream_info->stream_rings[stream_id]); | ||
866 | } | 869 | } |
867 | } else { | 870 | } else { |
868 | ring = ep->ring; | 871 | ring = ep->ring; |