When some error happened we'll have to stop processing the endpoint.
Signed-off-by: Gerd Hoffmann <[email protected]>
---
hw/usb-xhci.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/hw/usb-xhci.c b/hw/usb-xhci.c
index 5e618f0..7682126 100644
--- a/hw/usb-xhci.c
+++ b/hw/usb-xhci.c
@@ -1721,10 +1721,14 @@ static void xhci_kick_ep(XHCIState *xhci, unsigned int
slotid, unsigned int epid
}
}
+ if (epctx->state == EP_HALTED) {
+ DPRINTF("xhci: ep halted, stopping schedule\n");
+ break;
+ }
+
/*
* Qemu usb can't handle multiple in-flight xfers.
- * Also xfers might be finished here already,
- * possibly with an error. Stop here for now.
+ * Stop here for now.
*/
break;
}
--
1.7.1