--- qemu/hw/usb-bus.c 2018/04/24 17:37:33 1.1 +++ qemu/hw/usb-bus.c 2018/04/24 18:28:27 1.1.1.3 @@ -102,6 +102,9 @@ USBDevice *usb_create(USBBus *bus, const USBDevice *usb_create_simple(USBBus *bus, const char *name) { USBDevice *dev = usb_create(bus, name); + if (!dev) { + hw_error("Failed to create USB device '%s'\n", name); + } qdev_init_nofail(&dev->qdev); return dev; } @@ -149,11 +152,10 @@ static void do_attach(USBDevice *dev) int usb_device_attach(USBDevice *dev) { USBBus *bus = usb_bus_from_device(dev); - USBDevice *hub; if (bus->nfree == 1) { /* Create a new hub and chain it on. */ - hub = usb_create_simple(bus, "usb-hub"); + usb_create_simple(bus, "usb-hub"); } do_attach(dev); return 0; @@ -261,7 +263,8 @@ USBDevice *usbdevice_create(const char * USBBus *bus = usb_bus_find(-1 /* any */); DeviceInfo *info; USBDeviceInfo *usb; - char driver[32], *params; + char driver[32]; + const char *params; int len; params = strchr(cmdline,':'); @@ -272,6 +275,7 @@ USBDevice *usbdevice_create(const char * len = sizeof(driver); pstrcpy(driver, len, cmdline); } else { + params = ""; pstrcpy(driver, sizeof(driver), cmdline); } @@ -288,14 +292,14 @@ USBDevice *usbdevice_create(const char * if (info == NULL) { #if 0 /* no error because some drivers are not converted (yet) */ - qemu_error("usbdevice %s not found\n", driver); + error_report("usbdevice %s not found", driver); #endif return NULL; } if (!usb->usbdevice_init) { - if (params) { - qemu_error("usbdevice %s accepts no params\n", driver); + if (*params) { + error_report("usbdevice %s accepts no params", driver); return NULL; } return usb_create_simple(bus, usb->qdev.name);