]> xenbits.xensource.com Git - qemu-upstream-4.3-testing.git/commitdiff
ehci: schedule async bh on async packet completion
authorGerd Hoffmann <kraxel@redhat.com>
Fri, 11 May 2012 09:31:56 +0000 (11:31 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Thu, 7 Jun 2012 08:02:22 +0000 (10:02 +0200)
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 <kraxel@redhat.com>
hw/usb/hcd-ehci.c

index 16627d35c0873235322d4031b6e735b79c2ce780..8b2dfeda561321cb3b0f6aea70b45bad5c1602c5 100644 (file)
@@ -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)