|
@@ -869,8 +869,12 @@ remove_finished_td:
|
|
|
/* Otherwise ring the doorbell(s) to restart queued transfers */
|
|
|
ring_doorbell_for_active_rings(xhci, slot_id, ep_index);
|
|
|
}
|
|
|
- ep->stopped_td = NULL;
|
|
|
- ep->stopped_trb = NULL;
|
|
|
+
|
|
|
+ /* Clear stopped_td and stopped_trb if endpoint is not halted */
|
|
|
+ if (!(ep->ep_state & EP_HALTED)) {
|
|
|
+ ep->stopped_td = NULL;
|
|
|
+ ep->stopped_trb = NULL;
|
|
|
+ }
|
|
|
|
|
|
/*
|
|
|
* Drop the lock and complete the URBs in the cancelled TD list.
|