Revision 81a322d4
ID | 81a322d4a1b68d47908a6630bf22897a289722aa |
qdev: add return value to init() callbacks.
Sorry folks, but it has to be. One more of these invasive qdev patches.
We have a serious design bug in the qdev interface: device init
callbacks can't signal failure because the init() callback has no
return value. This patch fixes it.
We have already one case in-tree where this is needed:
Try -device virtio-blk-pci (without drive= specified) and watch qemu
segfault. This patch fixes it.
With usb+scsi being converted to qdev we'll get more devices where the
init callback can fail for various reasons.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Files
- added
- modified
- copied
- renamed
- deleted
- hw
- ac97.c (diff)
- ads7846.c (diff)
- apb_pci.c (diff)
- arm_sysctl.c (diff)
- arm_timer.c (diff)
- armv7m.c (diff)
- armv7m_nvic.c (diff)
- bitbang_i2c.c (diff)
- cirrus_vga.c (diff)
- cs4231.c (diff)
- e1000.c (diff)
- eccmemctl.c (diff)
- eepro100.c (diff)
- es1370.c (diff)
- escc.c (diff)
- esp.c (diff)
- etraxfs_pic.c (diff)
- etraxfs_ser.c (diff)
- etraxfs_timer.c (diff)
- fdc.c (diff)
- grackle_pci.c (diff)
- i2c.c (diff)
- i2c.h (diff)
- integratorcp.c (diff)
- iommu.c (diff)
- isa-bus.c (diff)
- isa.h (diff)
- lm832x.c (diff)
- lsi53c895a.c (diff)
- m48t59.c (diff)
- marvell_88w8618_audio.c (diff)
- max111x.c (diff)
- max7310.c (diff)
- mpcore.c (diff)
- musicpal.c (diff)
- ne2000.c (diff)
- pci.c (diff)
- pci.h (diff)
- pckbd.c (diff)
- pcnet.c (diff)
- piix_pci.c (diff)
- pl011.c (diff)
- pl022.c (diff)
- pl031.c (diff)
- pl050.c (diff)
- pl061.c (diff)
- pl080.c (diff)
- pl110.c (diff)
- pl181.c (diff)
- pl190.c (diff)
- pxa2xx.c (diff)
- qdev.c (diff)
- qdev.h (diff)
- realview_gic.c (diff)
- rtl8139.c (diff)
- sbi.c (diff)
- slavio_intctl.c (diff)
- slavio_misc.c (diff)
- slavio_timer.c (diff)
- smbus.c (diff)
- smbus.h (diff)
- smbus_eeprom.c (diff)
- smc91c111.c (diff)
- sparc32_dma.c (diff)
- spitz.c (diff)
- ssd0303.c (diff)
- ssd0323.c (diff)
- ssi-sd.c (diff)
- ssi.c (diff)
- ssi.h (diff)
- stellaris.c (diff)
- stellaris_enet.c (diff)
- sun4c_intctl.c (diff)
- sun4m.c (diff)
- sun4u.c (diff)
- syborg_fb.c (diff)
- syborg_interrupt.c (diff)
- syborg_keyboard.c (diff)
- syborg_pointer.c (diff)
- syborg_rtc.c (diff)
- syborg_serial.c (diff)
- syborg_timer.c (diff)
- syborg_virtio.c (diff)
- sysbus.c (diff)
- sysbus.h (diff)
- tcx.c (diff)
- tmp105.c (diff)
- tosa.c (diff)
- twl92230.c (diff)
- unin_pci.c (diff)
- versatile_pci.c (diff)
- versatilepb.c (diff)
- vga.c (diff)
- virtio-pci.c (diff)
- vmware_vga.c (diff)
- wdt_i6300esb.c (diff)
- wdt_ib700.c (diff)
- wm8750.c (diff)
- xilinx_ethlite.c (diff)
- xilinx_intc.c (diff)
- xilinx_timer.c (diff)
- xilinx_uartlite.c (diff)