qemu/hw
Greg Kurz 1105504100 spapr: Use spapr_drc_reset_all() at machine reset
Documentation of object_child_foreach_recursive() clearly stipulates
that "it is forbidden to add or remove children from @obj from the @fn
callback". But this is exactly what we do during machine reset. The call
to spapr_drc_reset() can finalize the hot-unplug sequence of a PHB or a
PCI bridge, both of which will then in turn destroy their PCI DRCs. This
could potentially invalidate the iterator used by do_object_child_foreach().
It is pure luck that this haven't caused any issues so far.

Use spapr_drc_reset_all() since it can cope with DRC removal.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <20201218103400.689660-5-groug@kaod.org>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Tested-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2021-01-06 11:09:59 +11:00
..
9pfs hw/9pfs: Fix Kconfig dependency problem between 9pfs and Xen 2020-11-05 15:21:11 +01:00
acpi qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
adc meson: convert hw/adc 2020-08-21 06:30:32 -04:00
alpha vl: extract softmmu/datadir.c 2020-12-10 12:15:18 -05:00
arm qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
audio cs4231: Get rid of empty property array 2020-12-15 10:02:07 -05:00
avr vl: extract softmmu/datadir.c 2020-12-10 12:15:18 -05:00
block Machine queue, 2020-12-23 2021-01-01 22:57:15 +00:00
char qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
core Machine queue, 2020-12-23 2021-01-01 22:57:15 +00:00
cpu cpu/core: Register core-id and nr-threads as class properties 2020-09-22 16:48:29 -04:00
cris cris: do not use ram_size global 2020-12-10 12:15:07 -05:00
display migration: Replace migration's JSON writer by the general one 2020-12-19 10:39:16 +01:00
dma hw/dma/xilinx_axidma: Rename StreamSlave as StreamSink 2020-12-10 12:15:04 -05:00
gpio nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
hppa vl: extract softmmu/datadir.c 2020-12-10 12:15:18 -05:00
hyperv qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
i2c nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
i386 qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
ide qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
input ads7846: moves from the hw/display folder to the hw/input folder. 2020-12-13 17:54:55 +01:00
intc spapr/xive: Make spapr_xive_pic_print_info() static 2021-01-06 11:09:59 +11:00
ipack Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
ipmi qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
isa x86: ich9: let firmware negotiate 'CPU hot-unplug with SMI' feature 2020-12-09 13:04:17 -05:00
lm32 vl: extract softmmu/datadir.c 2020-12-10 12:15:18 -05:00
m68k hw/m68k/q800.c: Make the GLUE chip an actual QOM device 2020-12-12 18:06:01 +01:00
mem nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
microblaze vl: make qemu_get_machine_opts static 2020-12-15 12:51:55 -05:00
mips hw/mips/malta: Rewrite CP0_MVPConf0 access using deposit() 2020-12-13 20:26:02 +01:00
misc qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
moxie moxie: do not use ram_size global 2020-12-10 12:15:08 -05:00
net Machine queue, 2020-12-23 2021-01-01 22:57:15 +00:00
nios2 * New -action option and set-action QMP command (Alejandro) 2020-12-15 21:24:31 +00:00
nubus meson: convert hw/nubus 2020-08-21 06:30:25 -04:00
nvram Machine queue, 2020-12-23 2021-01-01 22:57:15 +00:00
openrisc target/openrisc: Move pic_cpu code into CPU object proper 2020-12-15 12:04:30 +00:00
pci Machine queue, 2020-12-23 2021-01-01 22:57:15 +00:00
pci-bridge qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
pci-host hw/pci-host/pam: Replace magic number by PAM_REGIONS_COUNT definition 2020-12-13 17:07:05 +01:00
pcmcia pxa2xx: Move QOM macros to header 2020-08-27 14:04:55 -04:00
ppc spapr: Use spapr_drc_reset_all() at machine reset 2021-01-06 11:09:59 +11:00
rdma Machine queue, 2020-12-23 2021-01-01 22:57:15 +00:00
riscv riscv/opentitan: Update the OpenTitan memory layout 2020-12-17 21:56:44 -08:00
rtc Machine queue, 2020-12-23 2021-01-01 22:57:15 +00:00
rx rx: move BIOS load from MCU to board 2020-12-10 12:15:06 -05:00
s390x Machine queue, 2020-12-23 2021-01-01 22:57:15 +00:00
scsi Machine queue, 2020-12-23 2021-01-01 22:57:15 +00:00
sd qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
semihosting meson: convert hw/semihosting 2020-08-21 06:30:25 -04:00
sh4 sh4: remove bios_name 2020-12-10 12:15:06 -05:00
smbios i386: do not use ram_size global 2020-12-10 12:15:08 -05:00
sparc vl: extract softmmu/datadir.c 2020-12-10 12:15:18 -05:00
sparc64 vl: extract softmmu/datadir.c 2020-12-10 12:15:18 -05:00
ssi hw/core/stream: Rename StreamSlave as StreamSink 2020-12-10 12:15:04 -05:00
timer hw/timer/renesas_tmr: silence the compiler warnings 2020-12-18 09:14:23 +01:00
tpm qdev: Move qdev_prop_tpm declaration to tpm_prop.h 2020-12-18 15:20:17 -05:00
tricore tricore tcg cpus: Fix Lesser GPL version number 2020-11-15 16:40:30 +01:00
unicore32 meson: convert hw/arch* 2020-08-21 06:30:33 -04:00
usb Machine queue, 2020-12-23 2021-01-01 22:57:15 +00:00
vfio qdev: Rename qdev_get_prop_ptr() to object_field_prop_ptr() 2020-12-18 15:20:18 -05:00
virtio Machine queue, 2020-12-23 2021-01-01 22:57:15 +00:00
watchdog hw/watchdog/wdt_diag288: Remove unnecessary includes 2020-12-11 11:38:10 +01:00
xen qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
xenpv meson: convert hw/arch* 2020-08-21 06:30:33 -04:00
xtensa vl: make qemu_get_machine_opts static 2020-12-15 12:51:55 -05:00
Kconfig hw/net/can: Introduce Xilinx ZynqMP CAN controller 2020-12-10 11:30:44 +00:00
meson.build meson: convert hw/arch* 2020-08-21 06:30:33 -04:00