diff options
author | Markus Armbruster <armbru@redhat.com> | 2009-10-07 01:15:57 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2009-10-07 08:54:54 -0500 |
commit | 33e66b86d89040f0a9e99aa53deb74ce8936a649 (patch) | |
tree | a356cfe20774dbc9e6107d8824414c1ea75599ce | |
parent | 18cfeb52d17825dddadfc74e99255530aa889136 (diff) |
Check return value of qdev_init()
But do so only where it may actually fail. Leave the rest for the
next commit.
Patchworks-ID: 35167
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r-- | hw/pci-hotplug.c | 4 | ||||
-rw-r--r-- | hw/pci.c | 1 | ||||
-rw-r--r-- | hw/scsi-bus.c | 4 | ||||
-rw-r--r-- | hw/usb-msd.c | 3 | ||||
-rw-r--r-- | usb-linux.c | 6 |
5 files changed, 12 insertions, 6 deletions
diff --git a/hw/pci-hotplug.c b/hw/pci-hotplug.c index c38a127394..ccd2cf3cac 100644 --- a/hw/pci-hotplug.c +++ b/hw/pci-hotplug.c @@ -172,8 +172,8 @@ static PCIDevice *qemu_pci_hot_add_storage(Monitor *mon, default: dev = NULL; } - if (dev) - qdev_init(&dev->qdev); + if (!dev || qdev_init(&dev->qdev) < 0) + return NULL; return dev; } @@ -833,6 +833,7 @@ static const char * const pci_nic_names[] = { }; /* Initialize a PCI NIC. */ +/* FIXME callers should check for failure, but don't */ PCIDevice *pci_nic_init(NICInfo *nd, const char *default_model, const char *default_devaddr) { diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c index fe8991e9ce..41992e52df 100644 --- a/hw/scsi-bus.c +++ b/hw/scsi-bus.c @@ -82,6 +82,7 @@ void scsi_qdev_register(SCSIDeviceInfo *info) } /* handle legacy '-drive if=scsi,...' cmd line args */ +/* FIXME callers should check for failure, but don't */ SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, DriveInfo *dinfo, int unit) { const char *driver; @@ -91,7 +92,8 @@ SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, DriveInfo *dinfo, int unit) dev = qdev_create(&bus->qbus, driver); qdev_prop_set_uint32(dev, "scsi-id", unit); qdev_prop_set_drive(dev, "drive", dinfo); - qdev_init(dev); + if (qdev_init(dev) < 0) + return NULL; return DO_UPCAST(SCSIDevice, qdev, dev); } diff --git a/hw/usb-msd.c b/hw/usb-msd.c index e090014f74..dd3010e006 100644 --- a/hw/usb-msd.c +++ b/hw/usb-msd.c @@ -571,7 +571,8 @@ USBDevice *usb_msd_init(const char *filename) /* create guest device */ dev = usb_create(NULL /* FIXME */, "QEMU USB MSD"); qdev_prop_set_drive(&dev->qdev, "drive", dinfo); - qdev_init(&dev->qdev); + if (qdev_init(&dev->qdev) < 0) + return NULL; return dev; } diff --git a/usb-linux.c b/usb-linux.c index 77cbf1ba6c..9e5d9c40ef 100644 --- a/usb-linux.c +++ b/usb-linux.c @@ -980,12 +980,14 @@ static USBDevice *usb_host_device_open_addr(int bus_num, int addr, const char *p hostdev_link(dev); - qdev_init(&d->qdev); + if (qdev_init(&d->qdev) < 0) + goto fail_no_qdev; return (USBDevice *) dev; fail: if (d) qdev_free(&d->qdev); +fail_no_qdev: if (fd != -1) close(fd); return NULL; @@ -1389,7 +1391,7 @@ static int usb_host_auto_scan(void *opaque, int bus_num, int addr, /* We got a match */ - /* Allredy attached ? */ + /* Already attached ? */ if (hostdev_find(bus_num, addr)) return 0; |