"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...