xemu/hw
Paolo Bonzini abed886ec6 qdev: Free QemuOpts when the QOM path goes away
Otherwise there is a race where the DEVICE_DELETED event has been sent but
attempts to reuse the ID will fail.

Note that similar races exist for other QemuOpts, which this patch
does not attempt to fix.

For example, if the device is a block device, then unplugging it also
deletes its backend.  However, this backend's get deleted in
drive_info_del(), which is only called when properties are
destroyed.  Just like device_finalize(), drive_info_del() is called
some time after DEVICE_DELETED is sent.  A separate patch series has
been sent to plug this other bug.  Character devices also have yet to
be fixed.

Reported-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
2016-01-18 17:47:58 +01:00
..
9pfs 9pfs: introduce V9fsVirtioState 2016-01-12 11:04:14 +05:30
acpi trivial patches for 2016-01-11 2016-01-11 12:56:58 +00:00
alpha isa: Clean up error handling around isa_bus_new() 2016-01-13 11:58:59 +01:00
arm ARM: virt: Don't generate RTC ACPI device when using UEFI 2016-01-15 14:55:16 +00:00
audio Remove macros IO_READ_PROTO and IO_WRITE_PROTO 2015-10-19 09:03:53 +02:00
block error: Use error_prepend() where it makes obvious sense 2016-01-13 15:16:17 +01:00
bt bt: avoid unintended sign extension 2015-12-04 09:39:55 +03:00
char Error reporting patches for 2016-01-13 2016-01-14 13:07:38 +00:00
core qdev: Free QemuOpts when the QOM path goes away 2016-01-18 17:47:58 +01:00
cpu icc_bus: drop the unused files 2015-10-02 16:22:02 -03:00
cris cris: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:43 +02:00
display ui/curses: Fix color attribute of monitor for curses 2016-01-08 12:20:07 +01:00
dma hw/dma/xilinx_axidma: remove dead code 2016-01-11 15:52:18 +00:00
gpio omap: Don't use hw_error() in device init() methods 2016-01-13 11:58:58 +01:00
i2c omap: Don't use hw_error() in device init() methods 2016-01-13 11:58:58 +01:00
i386 i386: avoid null pointer dereference 2016-01-15 18:58:01 +01:00
ide hw: Inline the qdev_prop_set_drive_nofail() wrapper 2016-01-13 11:58:58 +01:00
input qapi: Change munging of CamelCase enum values 2015-12-17 08:21:28 +01:00
intc omap: Don't use hw_error() in device init() methods 2016-01-13 11:58:58 +01:00
ipack pci: Trivial device model conversions to realize 2015-02-26 12:42:16 +01:00
ipmi ipmi: Add a force off function 2015-12-22 18:39:19 +02:00
isa isa: Clean up inappropriate hw_error() 2016-01-13 15:15:57 +01:00
lm32 ui/opengl: Reduce build required libraries for opengl 2015-11-03 10:13:42 +01:00
m68k hw: Don't use hw_error() for machine initialization errors 2016-01-13 11:58:58 +01:00
mem nvdimm: implement NVDIMM device abstract 2015-12-22 18:39:20 +02:00
microblaze petalogix-ml605: Set the MicroBlaze CPU version to 8.10.a 2016-01-07 14:57:26 +01:00
mips isa: Clean up error handling around isa_bus_new() 2016-01-13 11:58:59 +01:00
misc i.MX: move i.MX31 CCM object to register array 2016-01-11 15:52:18 +00:00
moxie moxie: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:43 +02:00
net etraxfs_eth: Don't use hw_error() in init() method 2016-01-13 11:58:58 +01:00
nvram fw_cfg: replace ioport data read with generic method 2015-12-15 11:46:13 +01:00
openrisc * First batch of MAINTAINERS updates 2015-09-25 21:52:30 +01:00
pci fix bad indentation in pcie_cap_slot_write_config() 2015-11-06 15:42:38 +03:00
pci-bridge hw/pxb: introduce pxb-pcie expander for PCIe machines 2015-12-22 17:45:13 +02:00
pci-host isa: Clean up error handling around isa_bus_new() 2016-01-13 11:58:59 +01:00
pcmcia hw: do not pass NULL to memory_region_init from instance_init 2015-10-09 15:25:56 +02:00
ppc qom: Change object property iterator API contract 2016-01-18 17:47:58 +01:00
s390x Error reporting patches for 2016-01-13 2016-01-14 13:07:38 +00:00
scsi SCSI device: fix to incomplete QOMify 2016-01-15 18:58:01 +01:00
sd sdhci: add optional quirk property to disable card insertion/removal interrupts 2015-12-22 16:34:26 +08:00
sh4 SH PCI Host: convert to realize() 2016-01-11 11:39:28 +03:00
smbios Use error_fatal to simplify obvious fatal errors 2016-01-13 11:58:58 +01:00
sparc sparc: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:44 +02:00
sparc64 target-sparc: Convert to VMStateDescription 2016-01-16 12:01:23 +00:00
ssi arm: Use g_new() & friends where that makes obvious sense 2015-09-07 10:39:27 +01:00
timer arm_mptimer: Don't use hw_error() in realize() method 2016-01-13 11:58:58 +01:00
tpm qemu-char: delete send_all/recv_all helper methods 2016-01-15 18:58:01 +01:00
tricore tricore: Remove ELF_MACHINE from cpu.h 2015-09-25 12:04:44 +02:00
unicore32 hw: Don't use hw_error() for machine initialization errors 2016-01-13 11:58:58 +01:00
usb error: Use error_prepend() where it makes obvious sense 2016-01-13 15:16:17 +01:00
vfio vfio: Use g_new() & friends where that makes obvious sense 2015-11-10 12:11:08 -07:00
virtio VirtFS update: 2016-01-12 17:37:22 +00:00
watchdog i6300esb: remove muldiv64() 2015-09-25 14:52:17 +02:00
xen xen/Makefile.objs: simplify 2016-01-11 11:39:28 +03:00
xenpv xen: fix usage of xc_domain_create in domain builder 2015-11-13 17:38:06 +00:00
xtensa target-xtensa: xtfpga: attach FLASH to system IO 2015-10-21 21:28:33 +03:00
Makefile.objs Add a base IPMI interface 2015-12-22 18:39:19 +02:00