mirror_qemu/hw/pci
Marcel Apfelbaum 306077640a hw/pci: fix error flow in pci multifunction init
Scenario:
  - There is a non multifunction pci device A on 00:0X.0.
  - Hot-plug another multifunction pci device B at 00:0X.1.
  - The operation will fail of course.
  - Try to hot-plug the B device 2-3 more times, qemu will crash.

Reason: The error flow leaves the B's address space into global address spaces
list, but the device object is freed. Fixed that.

Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2014-01-26 13:11:45 +02:00
..
Makefile.objs Makefile.target: CONFIG_NO_* variables removed 2013-10-16 18:21:00 +02:00
msi.c misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
msix.c hw/p*: pass owner to memory_region_init* functions 2013-07-04 17:42:48 +02:00
pci-hotplug-old.c qdev: Drop misleading qdev_free() function 2013-11-05 18:06:38 +01:00
pci-stub.c softmmu: move include files to include/sysemu/ 2012-12-19 08:32:45 +01:00
pci.c hw/pci: fix error flow in pci multifunction init 2014-01-26 13:11:45 +02:00
pci_bridge.c acpi,pci,pc,fedora,virtio fixes and enhancements 2014-01-10 11:04:48 -08:00
pci_host.c pci: add config space access traces 2013-08-28 10:11:23 +03:00
pcie.c qdev: Drop misleading qdev_free() function 2013-11-05 18:06:38 +01:00
pcie_aer.c bswap.h: Remove cpu_to_be32wu() 2013-11-05 19:57:47 -08:00
pcie_host.c pcie_host: expose address format 2013-10-14 17:48:51 +03:00
pcie_port.c pcie_port: Turn PCIEPort and PCIESlot into abstract QOM types 2013-07-29 20:45:24 +02:00
shpc.c qdev: Drop misleading qdev_free() function 2013-11-05 18:06:38 +01:00
slotid_cap.c hw: move qdev-monitor.o to toplevel directory 2013-03-01 13:54:10 +01:00