qemu-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]