[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Re: [FOR 0.12 PATCH 2/4] pci: don't hw_error() when no
From: |
Alexander Graf |
Subject: |
Re: [Qemu-devel] Re: [FOR 0.12 PATCH 2/4] pci: don't hw_error() when no slot is available. |
Date: |
Thu, 10 Dec 2009 13:33:09 +0100 |
On 10.12.2009, at 13:08, Michael S. Tsirkin wrote:
> On Thu, Dec 10, 2009 at 11:11:06AM +0100, Gerd Hoffmann wrote:
>> Current PCI code will simply hw_error() and thus abort in case no free
>> PCI slot is available or the requested PCI slot is already in use by
>> another device. For the hotplug case this behavior is not acceptable.
>> This patch makes qemu pass up the error properly, so the calling code
>> can decide whenever it wants to exit with an error (on startup) or
>> whenever it wants to continue (hotplug).
>>
>> Signed-off-by: Gerd Hoffmann <address@hidden>
>
>
> Good stuff. However
>
>> ---
>> hw/pci.c | 11 +++++++++--
>> 1 files changed, 9 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/pci.c b/hw/pci.c
>> index 4f662b7..404eead 100644
>> --- a/hw/pci.c
>> +++ b/hw/pci.c
>> @@ -580,11 +580,13 @@ static PCIDevice *do_pci_register_device(PCIDevice
>> *pci_dev, PCIBus *bus,
>> if (!bus->devices[devfn])
>> goto found;
>> }
>> - hw_error("PCI: no devfn available for %s, all in use\n", name);
>> + qemu_error("PCI: no devfn available for %s, all in use\n", name);
>> + return NULL;
>> found: ;
>> } else if (bus->devices[devfn]) {
>> - hw_error("PCI: devfn %d not available for %s, in use by %s\n",
>> devfn,
>> + qemu_error("PCI: devfn %d not available for %s, in use by %s\n",
>> devfn,
>> name, bus->devices[devfn]->name);
>> + return NULL;
>> }
>> pci_dev->bus = bus;
>> pci_dev->devfn = devfn;
>> @@ -625,6 +627,9 @@ PCIDevice *pci_register_device(PCIBus *bus, const char
>> *name,
>> pci_dev = do_pci_register_device(pci_dev, bus, name, devfn,
>> config_read, config_write,
>> PCI_HEADER_TYPE_NORMAL);
>> + if (pci_dev == NULL) {
>> + hw_error("PCI: can't register device\n");
>> + }
>
> Can you please use !pci_dev for these checks?
>
>> return pci_dev;
>> }
>> static target_phys_addr_t pci_to_cpu_addr(target_phys_addr_t addr)
>> @@ -1376,6 +1381,8 @@ static int pci_qdev_init(DeviceState *qdev, DeviceInfo
>> *base)
>> pci_dev = do_pci_register_device(pci_dev, bus, base->name, devfn,
>> info->config_read, info->config_write,
>> info->header_type);
>> + if (pci_dev == NULL)
>> + return -1;
>
> And here too.
OMG! Broken coding style!
:)
Alex
- [Qemu-devel] [FOR 0.12 PATCH 0/4] misc bugfixes, Gerd Hoffmann, 2009/12/10
- [Qemu-devel] [FOR 0.12 PATCH 2/4] pci: don't hw_error() when no slot is available., Gerd Hoffmann, 2009/12/10
- [Qemu-devel] Re: [FOR 0.12 PATCH 2/4] pci: don't hw_error() when no slot is available., Michael S. Tsirkin, 2009/12/10
- [Qemu-devel] Re: [FOR 0.12 PATCH 2/4] pci: don't hw_error() when no slot is available., Gerd Hoffmann, 2009/12/10
- [Qemu-devel] Re: [FOR 0.12 PATCH 2/4] pci: don't hw_error() when no slot is available., Michael S. Tsirkin, 2009/12/10
- Re: [Qemu-devel] Re: [FOR 0.12 PATCH 2/4] pci: don't hw_error() when no slot is available., Gleb Natapov, 2009/12/10
- Re: [Qemu-devel] Re: [FOR 0.12 PATCH 2/4] pci: don't hw_error() when no slot is available., Michael S. Tsirkin, 2009/12/10
- Re: [Qemu-devel] Re: [FOR 0.12 PATCH 2/4] pci: don't hw_error() when no slot is available., Gleb Natapov, 2009/12/10
- Re: [Qemu-devel] Re: [FOR 0.12 PATCH 2/4] pci: don't hw_error() when no slot is available., Michael S. Tsirkin, 2009/12/11
- Re: [Qemu-devel] Re: [FOR 0.12 PATCH 2/4] pci: don't hw_error() when no slot is available., Gleb Natapov, 2009/12/11
- Re: [Qemu-devel] Re: [FOR 0.12 PATCH 2/4] pci: don't hw_error() when no slot is available.,
Alexander Graf <=
[Qemu-devel] [FOR 0.12 PATCH 1/4] pci: don't abort() when trying to hotplug with acpi off., Gerd Hoffmann, 2009/12/10
[Qemu-devel] [FOR 0.12 PATCH 3/4] scsi: fix drive hotplug., Gerd Hoffmann, 2009/12/10
[Qemu-devel] [FOR 0.12 PATCH 4/4] QemuOpts: allow larger option values., Gerd Hoffmann, 2009/12/10
[Qemu-devel] Re: [FOR 0.12 PATCH 0/4] misc bugfixes, Michael S. Tsirkin, 2009/12/10