When some error happened we'll have to stop processing the endpoint. Signed-off-by: Gerd Hoffmann <kra...@redhat.com> --- 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 3cd5374..1e8836f 100644 --- a/hw/usb-xhci.c +++ b/hw/usb-xhci.c @@ -1719,10 +1719,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