summaryrefslogtreecommitdiff
path: root/usb-linux.c
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2011-05-27 19:05:15 +0200
committerGerd Hoffmann <kraxel@redhat.com>2011-06-23 11:28:06 +0200
commitfa19bf831b8c87006533645ece58bc620aca00bc (patch)
tree7ecadccde072893726196e65ae9069925b01d962 /usb-linux.c
parentee210d6390761bb0fd6febe0fb8f94ee0dcba0db (diff)
downloadqemu-fa19bf831b8c87006533645ece58bc620aca00bc.tar.gz
qemu-fa19bf831b8c87006533645ece58bc620aca00bc.tar.bz2
qemu-fa19bf831b8c87006533645ece58bc620aca00bc.zip
usb: Proper error propagation for usb_device_attach errors
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'usb-linux.c')
-rw-r--r--usb-linux.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/usb-linux.c b/usb-linux.c
index 42baafe0a1..9b6f2be0f4 100644
--- a/usb-linux.c
+++ b/usb-linux.c
@@ -1178,10 +1178,14 @@ static int usb_host_open(USBHostDevice *dev, int bus_num,
prod_name);
}
+ ret = usb_device_attach(&dev->dev);
+ if (ret) {
+ goto fail;
+ }
+
/* USB devio uses 'write' flag to check for async completions */
qemu_set_fd_handler(dev->fd, NULL, async_complete, dev);
- usb_device_attach(&dev->dev);
return 0;
fail: