From ae710b99050a347cc7ef93e1873bf08c9a97b6be Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Fri, 11 May 2012 11:31:56 +0200 Subject: [PATCH] ehci: schedule async bh on async packet completion When a packet completes which happens to be part of the async schedule kick the async bottom half for processing, Signed-off-by: Gerd Hoffmann --- hw/usb/hcd-ehci.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c index 16627d35c0..8b2dfeda56 100644 --- a/hw/usb/hcd-ehci.c +++ b/hw/usb/hcd-ehci.c @@ -1327,6 +1327,10 @@ static void ehci_async_complete_packet(USBPort *port, USBPacket *packet) assert(p->async == EHCI_ASYNC_INFLIGHT); p->async = EHCI_ASYNC_FINISHED; p->usb_status = packet->result; + + if (p->queue->async) { + qemu_bh_schedule(p->queue->ehci->async_bh); + } } static void ehci_execute_complete(EHCIQueue *q)