qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] pci: fixed mismatch of error-handling between p


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH] pci: fixed mismatch of error-handling between pci_qdev_init() and qdev
Date: Wed, 05 Nov 2014 14:18:31 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0


On 05/11/2014 14:16, Markus Armbruster wrote:
> "Michael S. Tsirkin" <address@hidden> writes:
> 
>> On Wed, Nov 05, 2014 at 07:11:51PM +0900, SeokYeon Hwang wrote:
>>> pci_qdev_init() checks whether return value is 0 or not to figure
>>> out pci device is initialized successfully. Otherwise,
>>> device_realize() in qdev checks that return value is negative value
>>> to figure out the device is realized successfully.
>>> When pci device returns positive number, pci_qdev_init() thinks that
>>> error is occured and makes the device unregistered. Nevertheless,
>>> qdev thinks that device is realized.
>>> Finally, crash is occured by commands like 'qtree' that traverse qdev list.
>>>
>>> So, pci_qdev_init() returns -1 when init function returns not 0.
>>>
>>> Signed-off-by: SeokYeon Hwang <address@hidden>
>>
>> Question: is there a simple way to trigger this error?
> 
> Next question: what's the contract of PCIDeviceClass method init()?
> Positive return value feels like bug to me...

I think bypassing the question by converting to realize makes the most
sense...

Paolo



reply via email to

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