|
@@ -864,13 +864,16 @@ static void xhci_kill_endpoint_urbs(struct xhci_hcd *xhci,
|
|
|
(ep->ep_state & EP_GETTING_NO_STREAMS)) {
|
|
|
int stream_id;
|
|
|
|
|
|
- for (stream_id = 0; stream_id < ep->stream_info->num_streams;
|
|
|
+ for (stream_id = 1; stream_id < ep->stream_info->num_streams;
|
|
|
stream_id++) {
|
|
|
+ ring = ep->stream_info->stream_rings[stream_id];
|
|
|
+ if (!ring)
|
|
|
+ continue;
|
|
|
+
|
|
|
xhci_dbg_trace(xhci, trace_xhci_dbg_cancel_urb,
|
|
|
"Killing URBs for slot ID %u, ep index %u, stream %u",
|
|
|
- slot_id, ep_index, stream_id + 1);
|
|
|
- xhci_kill_ring_urbs(xhci,
|
|
|
- ep->stream_info->stream_rings[stream_id]);
|
|
|
+ slot_id, ep_index, stream_id);
|
|
|
+ xhci_kill_ring_urbs(xhci, ring);
|
|
|
}
|
|
|
} else {
|
|
|
ring = ep->ring;
|