qemu/hw
Greg Kurz f1023d21e8 spapr: Unrealize vCPUs with qdev_unrealize()
Since we introduced CPU hot-unplug in sPAPR, we don't unrealize the
vCPU objects explicitly. Instead, we let QOM handle that for us under
object_property_del_all() when the CPU core object is finalized. The
only thing we do is calling cpu_remove_sync() to tear the vCPU thread
down.

This happens to work but it is ugly because:
- we call qdev_realize() but the corresponding qdev_unrealize() is
  buried deep in the QOM code
- we call cpu_remove_sync() to undo qemu_init_vcpu() called by
  ppc_cpu_realize() in target/ppc/translate_init.c.inc
- the CPU init and teardown paths aren't really symmetrical

The latter didn't bite us so far but a future patch that greatly
simplifies the CPU core realize path needs it to avoid a crash
in QOM.

For all these reasons, have ppc_cpu_unrealize() to undo the changes
of ppc_cpu_realize() by calling cpu_remove_sync() at the right place,
and have the sPAPR CPU core code to call qdev_unrealize().

This requires to add a missing stub because translate_init.c.inc is
also compiled for user mode.

Signed-off-by: Greg Kurz <groug@kaod.org>
Message-Id: <160279671236.1808373.14732005038172874990.stgit@bahia.lan>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2020-10-28 01:08:53 +11:00
..
9pfs 9pfs: suppress performance warnings on qtest runs 2020-10-19 14:25:40 +02:00
acpi acpi: add aml builder stubs 2020-10-21 11:36:19 +02:00
adc
alpha
arm hw/arm/nseries: Fix loading kernel image on n8x0 machines 2020-10-20 16:12:01 +01:00
audio
avr
block hw/block/nvme: Simplify timestamp sum 2020-10-13 13:33:45 +02:00
char hw/char/serial: remove duplicate .class_init in serial_mm_info 2020-10-13 13:33:46 +02:00
core * fix --disable-tcg builds (Claudio) 2020-10-26 15:49:11 +00:00
cpu
cris
display vga-pci: Register "big-endian-framebuffer" as class property 2020-10-13 15:56:30 -04:00
dma
gpio
hppa
hyperv
i2c microbit_i2c: Fix coredump when dump-vmstate 2020-10-20 16:12:00 +01:00
i386 microvm: fix PCIe IRQs in APIC table. 2020-10-21 21:45:46 +01:00
ide hw/ide: restore replay support of IDE 2020-10-09 17:27:55 +01:00
input
intc hw/intc: Move sifive_plic.h to the include directory 2020-10-22 12:00:22 -07:00
ipack
ipmi
isa
lm32
m68k
mem
microblaze
mips hw/mips: Remove exit(1) in case of missing ROM 2020-10-17 13:59:40 +02:00
misc hw/misc/sifive_u_otp: Add backend drive support 2020-10-22 12:00:50 -07:00
moxie
net hw/net: move allocation to the heap due to very large stack frame 2020-10-28 01:08:53 +11:00
nios2
nubus
nvram hw/nvram: Always register FW_CFG_DATA_GENERATOR_INTERFACE 2020-10-12 11:50:20 -04:00
openrisc
pci hw/pci: Fix typo in PCI hot-plug error message 2020-10-13 13:33:45 +02:00
pci-bridge
pci-host uninorth: use qdev gpios for PCI IRQs 2020-10-18 16:21:42 +01:00
pcmcia
ppc spapr: Unrealize vCPUs with qdev_unrealize() 2020-10-28 01:08:53 +11:00
rdma
riscv hw/riscv: Load the kernel after the firmware 2020-10-22 12:00:22 -07:00
rtc m48t59: remove legacy m48t59_init() function 2020-10-18 16:21:42 +01:00
rx
s390x s390x: pv: Remove sclp boundary checks 2020-10-22 15:47:27 +02:00
scsi scsi/scsi_bus: fix races in REPORT LUNS 2020-10-12 11:50:51 -04:00
sd hw/sd/sdcard: Zero out function selection fields before being populated 2020-10-26 09:23:47 +01:00
semihosting
sh4
smbios
sparc sun4m: use qdev properties instead of legacy m48t59_init() function 2020-10-18 16:21:42 +01:00
sparc64 sun4u: use qdev properties instead of legacy m48t59_init() function 2020-10-18 16:21:42 +01:00
ssi hw/ssi/npcm7xx_fiu: Fix handling of unsigned integer 2020-10-08 15:24:32 +01:00
timer hw/timer/bcm2835: Support the timer COMPARE registers 2020-10-20 16:12:00 +01:00
tpm
tricore
unicore32
usb usb/xhci: fixup xhci kconfig deps 2020-10-21 11:36:19 +02:00
vfio vfio-ccw: plug memory leak while getting region info 2020-10-02 13:52:49 +02:00
virtio Error reporting patches for 2020-10-09 2020-10-09 14:47:45 +01:00
watchdog
xen xen-bus: reduce scope of backend watch 2020-10-19 16:32:41 +01:00
xenpv
xtensa
Kconfig
meson.build