From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=57843 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OQfR4-0004U6-0A for qemu-devel@nongnu.org; Mon, 21 Jun 2010 07:45:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OQfR0-0005e4-Vg for qemu-devel@nongnu.org; Mon, 21 Jun 2010 07:45:05 -0400 Received: from mx1.redhat.com ([209.132.183.28]:11012) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OQfR0-0005cn-PD for qemu-devel@nongnu.org; Mon, 21 Jun 2010 07:45:02 -0400 Date: Mon, 21 Jun 2010 14:40:06 +0300 From: "Michael S. Tsirkin" Message-ID: <20100621114006.GB10001@redhat.com> References: <20100615034727.GT23473@valinux.co.jp> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20100615034727.GT23473@valinux.co.jp> Subject: [Qemu-devel] Re: [PATCH] pci hotplug: make pci hotplug return value to caller. List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Isaku Yamahata Cc: qemu-devel@nongnu.org, Gerd Hoffmann On Tue, Jun 15, 2010 at 12:47:27PM +0900, Isaku Yamahata wrote: > Make pci hotplug callback return value to caller. > There is no reason to discard return value. > > Signed-off-by: Isaku Yamahata > --- > hw/pci.c | 11 +++++++---- > 1 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/hw/pci.c b/hw/pci.c > index 7787005..3777c1c 100644 > --- a/hw/pci.c > +++ b/hw/pci.c > @@ -1623,8 +1623,12 @@ static int pci_qdev_init(DeviceState *qdev, DeviceInfo *base) > pci_dev->romfile = qemu_strdup(info->romfile); > pci_add_option_rom(pci_dev); > > - if (qdev->hotplugged) > - bus->hotplug(bus->hotplug_qdev, pci_dev, 1); > + if (qdev->hotplugged) { > + rc = bus->hotplug(bus->hotplug_qdev, pci_dev, 1); > + if (rc != 0) { > + return rc; I think we need to unregister the device (and remove option rom?), otherwise there's a resource leak here. Can it really fail? If not we can just make it void. > + } > + } > return 0; > } > > @@ -1632,8 +1636,7 @@ static int pci_unplug_device(DeviceState *qdev) > { > PCIDevice *dev = DO_UPCAST(PCIDevice, qdev, qdev); > > - dev->bus->hotplug(dev->bus->hotplug_qdev, dev, 0); > - return 0; > + return dev->bus->hotplug(dev->bus->hotplug_qdev, dev, 0); > } > > void pci_qdev_register(PCIDeviceInfo *info) > -- > 1.6.6.1 >