From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MvJGM-0003M1-7G for qemu-devel@nongnu.org; Tue, 06 Oct 2009 19:16:10 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MvJGH-0003KT-2j for qemu-devel@nongnu.org; Tue, 06 Oct 2009 19:16:09 -0400 Received: from [199.232.76.173] (port=52556 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MvJGG-0003KJ-UD for qemu-devel@nongnu.org; Tue, 06 Oct 2009 19:16:04 -0400 Received: from oxygen.pond.sub.org ([213.239.205.148]:50048) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1MvJGG-0005Ha-Ee for qemu-devel@nongnu.org; Tue, 06 Oct 2009 19:16:04 -0400 Received: from pike.pond.sub.org (pD9E3BD77.dip.t-dialin.net [217.227.189.119]) by oxygen.pond.sub.org (Postfix) with ESMTPA id 0BF63276D23 for ; Wed, 7 Oct 2009 01:16:01 +0200 (CEST) From: Markus Armbruster Date: Wed, 7 Oct 2009 01:15:57 +0200 Message-Id: <02351201de017f987b6db0ea749d0a02bbce982a.1254867902.git.armbru@redhat.com> In-Reply-To: References: Subject: [Qemu-devel] [PATCH 3/7] Check return value of qdev_init() List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org But do so only where it may actually fail. Leave the rest for the next commit. Signed-off-by: Markus Armbruster --- hw/pci-hotplug.c | 4 ++-- hw/pci.c | 1 + hw/scsi-bus.c | 4 +++- hw/usb-msd.c | 3 ++- usb-linux.c | 6 ++++-- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/hw/pci-hotplug.c b/hw/pci-hotplug.c index c38a127..ccd2cf3 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; } diff --git a/hw/pci.c b/hw/pci.c index 1debdab..da5cc56 100644 --- a/hw/pci.c +++ b/hw/pci.c @@ -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 fe8991e..41992e5 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 e090014..dd3010e 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 77cbf1b..9e5d9c4 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; -- 1.6.2.5