pci: cleanly backout of pci_qdev_init()
commit925fe64ae7b487fdb7bd56fcab63e2f87653c226
authorAlex Williamson <alex.williamson@redhat.com>
Tue, 11 May 2010 10:44:21 +0000 (11 06:44 -0400)
committerMichael S. Tsirkin <mst@redhat.com>
Tue, 11 May 2010 22:59:11 +0000 (12 01:59 +0300)
treede0ad9b6677f69773d4c5349a59d5c26858aeb7c
parent54d7cf136f040713095cbc064f62d753bff6f9d2
pci: cleanly backout of pci_qdev_init()

If the init function of a device fails, as might happen with device
assignment, we never undo the work done by do_pci_register_device().
This not only causes a bit of a memory leak, but also leaves a bogus
pointer in the bus devices array that can cause a segfault or
garbage data from 'info pci'.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
hw/pci.c