summary refs log tree commit diff stats
path: root/hw/usb.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2011-06-24 14:26:18 +0200
committerGerd Hoffmann <kraxel@redhat.com>2011-07-05 15:09:02 +0200
commit45b9fd348061ab793cf4521bb3621f07a5bd7bf6 (patch)
treec6788cae4d589bbe8cd93ee7b30d48e518535abf /hw/usb.c
parentfbf9db645765a22b796e128967bebb64c073938a (diff)
downloadfocaccia-qemu-45b9fd348061ab793cf4521bb3621f07a5bd7bf6.tar.gz
focaccia-qemu-45b9fd348061ab793cf4521bb3621f07a5bd7bf6.zip
usb: assert on calling usb_attach(port, NULL) on a port without a dev
with the "usb-ehci: cleanup port reset handling" patch in place no callers
are calling usb_attach(port, NULL) for a port where port->dev is NULL.

Doing that makes no sense as that causes the port detach op to get called
for a port with nothing attached. Add an assert that port->dev != NULL when
dev == NULL, and remove the check for not having a port->dev in the dev == NULL
case.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/usb.c')
-rw-r--r--hw/usb.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/hw/usb.c b/hw/usb.c
index 735ffd1966..27a983ca5c 100644
--- a/hw/usb.c
+++ b/hw/usb.c
@@ -40,12 +40,11 @@ void usb_attach(USBPort *port, USBDevice *dev)
     } else {
         /* detach */
         dev = port->dev;
+        assert(dev);
         port->ops->detach(port);
-        if (dev) {
-            usb_send_msg(dev, USB_MSG_DETACH);
-            dev->port = NULL;
-            port->dev = NULL;
-        }
+        usb_send_msg(dev, USB_MSG_DETACH);
+        dev->port = NULL;
+        port->dev = NULL;
     }
 }