On 05/11/2014 14:16, Markus Armbruster wrote:
> "Michael S. Tsirkin" <m...@redhat.com> 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 <syeon.hw...@samsung.com>
>>
>> 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