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


Reply via email to