qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 9/9] usb-hub: don't trigger assert on packet complet


From: Gerd Hoffmann
Subject: [Qemu-devel] [PATCH 9/9] usb-hub: don't trigger assert on packet completion.
Date: Thu, 13 Oct 2011 13:08:31 +0200

Calling usb_packet_complete() recursively when passing up the completion
event up the chain for devices connected via usb hub will trigger an
assert.  So don't do that, make the usb hub emulation call the upstream
completion callback directly instead.

Based on a patch from Stefan Hajnoczi <address@hidden>

Signed-off-by: Gerd Hoffmann <address@hidden>
---
 hw/usb-hub.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/hw/usb-hub.c b/hw/usb-hub.c
index 39382c7..dab8f51 100644
--- a/hw/usb-hub.c
+++ b/hw/usb-hub.c
@@ -207,10 +207,14 @@ static void usb_hub_complete(USBPort *port, USBPacket 
*packet)
     /*
      * Just pass it along upstream for now.
      *
-     * If we ever inplement usb 2.0 split transactions this will
+     * If we ever implement usb 2.0 split transactions this will
      * become a little more complicated ...
+     *
+     * Can't use usb_packet_complete() here because packet->owner is
+     * cleared already, go call the ->complete() callback directly
+     * instead.
      */
-    usb_packet_complete(&s->dev, packet);
+    s->dev.port->ops->complete(&s->dev.port, packet);
 }
 
 static void usb_hub_handle_reset(USBDevice *dev)
-- 
1.7.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]