aboutsummaryrefslogtreecommitdiff
path: root/hw/usb-xhci.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-01-17 13:25:13 +0100
committerGerd Hoffmann <kraxel@redhat.com>2012-02-10 12:16:30 +0100
commit3c4866e07ed17c7d64c2fd30738f68276ca353d9 (patch)
tree07fb64668aa4a975f6d9ebef4fdf02fdb02fd0b5 /hw/usb-xhci.c
parentf10de44e7eb8304406d42a2a7242887c08282c4a (diff)
xhci: stop on errors
When some error happened we'll have to stop processing the endpoint. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/usb-xhci.c')
-rw-r--r--hw/usb-xhci.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/hw/usb-xhci.c b/hw/usb-xhci.c
index 5e618f0db2..7682126e93 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;
}