qemu/hw
Damien Hedde e755e12759 hw/core/qdev: update hotplug reset regarding resettable
This commit make use of the resettable API to reset the device being
hotplugged when it is realized. Also it ensures it is put in a reset
state coherent with the parent it is plugged into.

Note that there is a difference in the reset. Instead of resetting
only the hotplugged device, we reset also its subtree (switch to
resettable API). This is not expected to be a problem because
sub-buses are just realized too. If a hotplugged device has any
sub-buses it is logical to reset them too at this point.

The recently added should_be_hidden and PCI's partially_hotplugged
mechanisms do not interfere with realize operation:
+ In the should_be_hidden use case, device creation is
delayed.
+ The partially_hotplugged mechanism prevents a device to be
unplugged and unrealized from qdev POV and unrealized.

Signed-off-by: Damien Hedde <damien.hedde@greensocs.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-id: 20200123132823.1117486-8-damien.hedde@greensocs.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2020-01-30 16:02:04 +00:00
..
9pfs * Register qdev properties as class properties (Marc-André) 2020-01-27 09:44:04 +00:00
acpi * Register qdev properties as class properties (Marc-André) 2020-01-27 09:44:04 +00:00
adc
alpha hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
arm hw/arm/raspi: Remove obsolete use of -smp to set the soc 'enabled-cpus' 2020-01-30 16:02:03 +00:00
audio add device_legacy_reset function to prepare for reset api change 2020-01-30 16:02:03 +00:00
block qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
bt Remove the core bluetooth code 2019-12-17 09:01:14 +01:00
char * Register qdev properties as class properties (Marc-André) 2020-01-27 09:44:04 +00:00
core hw/core/qdev: update hotplug reset regarding resettable 2020-01-30 16:02:04 +00:00
cpu qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
cris hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
display hppa: Add emulation of Artist graphics 2020-01-27 10:49:51 -08:00
dma * Register qdev properties as class properties (Marc-André) 2020-01-27 09:44:04 +00:00
gpio qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
hppa hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
hyperv add device_legacy_reset function to prepare for reset api change 2020-01-30 16:02:03 +00:00
i2c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
i386 add device_legacy_reset function to prepare for reset api change 2020-01-30 16:02:03 +00:00
ide add device_legacy_reset function to prepare for reset api change 2020-01-30 16:02:03 +00:00
input hppa: add emulation of LASI PS2 controllers 2020-01-27 10:49:51 -08:00
intc add device_legacy_reset function to prepare for reset api change 2020-01-30 16:02:03 +00:00
ipack qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
ipmi qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
isa qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
lm32 hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
m68k hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
mem qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
microblaze hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
mips hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
misc misc/pca9552: Add qom set and get 2020-01-30 16:02:02 +00:00
moxie hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
net ftgmac100: check RX and TX buffer alignment 2020-01-30 16:02:02 +00:00
nios2 hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
nubus
nvram qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
openrisc hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
pci qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
pci-bridge qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
pci-host hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
pcmcia
ppc add device_legacy_reset function to prepare for reset api change 2020-01-30 16:02:03 +00:00
rdma qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
riscv hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
rtc qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
s390x add device_legacy_reset function to prepare for reset api change 2020-01-30 16:02:03 +00:00
scsi add device_legacy_reset function to prepare for reset api change 2020-01-30 16:02:03 +00:00
sd add device_legacy_reset function to prepare for reset api change 2020-01-30 16:02:03 +00:00
semihosting semihosting: add qemu_semihosting_console_inc for SYS_READC 2020-01-09 11:41:29 +00:00
sh4 sm501: make SerialMM a child, export chardev property 2020-01-07 17:24:29 +04:00
smbios
sparc hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
sparc64 hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
ssi qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
timer qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
tpm tpm-ppi: page-align PPI RAM 2020-01-29 07:27:07 -05:00
tricore hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
unicore32
usb qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
vfio qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
virtio * Register qdev properties as class properties (Marc-André) 2020-01-27 09:44:04 +00:00
watchdog qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
xen qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
xenpv
xtensa hw/core/loader: Let load_elf() populate a field with CPU-specific flags 2020-01-29 19:28:52 +01:00
Kconfig Remove the core bluetooth code 2019-12-17 09:01:14 +01:00
Makefile.objs Remove the core bluetooth code 2019-12-17 09:01:14 +01:00