qemu/hw
Nicholas Piggin ac559ecbea spapr: Set LPCR to current AIL mode when starting a new CPU
TCG does not keep track of AIL mode in a central place, it's based on
the current LPCR[AIL] bits. Synchronize the new CPU's LPCR to the
current LPCR in rtas_start_cpu(), similarly to the way the ILE bit is
synchronized.

Open-code the ILE setting as well now that the caller's LPCR is
available directly, there is no need for the indirection.

Without this, under both TCG and KVM, adding a POWER8/9/10 class CPU
with a new core ID after a modern Linux has booted results in the new
CPU's LPCR missing the LPCR[AIL]=0b11 setting that the other CPUs have.
This can cause crashes and unexpected behaviour.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Message-Id: <20210526091626.3388262-3-npiggin@gmail.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2021-06-03 13:22:06 +10:00
..
9pfs docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
acpi docs: fix references to docs/specs/tpm.rst 2021-06-02 06:51:09 +02:00
adc docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
alpha docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
arm docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
audio docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
avr hw/avr/atmega.c: use the avr51 cpu for atmega1280 2021-05-13 19:11:42 +02:00
block docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
char docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
core Adjust types for some memory access functions. 2021-05-28 16:25:21 +01:00
cpu cpu/core: Fix "help" of CPU core device types 2021-04-09 16:05:16 -04:00
cris Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
display docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
dma docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
gpio docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
hppa docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
hyperv qdev: Move softmmu properties to qdev-properties-system.h 2020-12-18 15:20:17 -05:00
i2c docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
i386 * Update the references to some doc files (use *.rst instead of *.txt) 2021-06-02 17:08:11 +01:00
ide docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
input docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
intc docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
ipack Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
ipmi hw: Do not include qemu/log.h if it is not necessary 2021-05-02 17:24:50 +02:00
isa docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
m68k Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
mem docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
microblaze Do not include sysemu/sysemu.h if it's not really necessary 2021-05-02 17:24:50 +02:00
mips target/mips: Fold jazz behaviour into mips_cpu_do_transaction_failed 2021-05-26 15:33:59 -07:00
misc docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
net docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
nios2 Do not include cpu.h if it's not really necessary 2021-05-02 17:24:51 +02:00
nubus hw: Do not include hw/sysbus.h if it is not necessary 2021-05-02 17:24:50 +02:00
nvme hw/nvme: move nvme emulation out of hw/block 2021-05-17 09:19:00 +02:00
nvram docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
openrisc Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
pci docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
pci-bridge Kconfig: Compile PXB for ARM_VIRT 2021-01-17 06:42:54 -05:00
pci-host docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
pcmcia hw/pcmcia: Do not register PCMCIA type if not required 2021-05-02 17:24:50 +02:00
ppc spapr: Set LPCR to current AIL mode when starting a new CPU 2021-06-03 13:22:06 +10:00
rdma docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
remote multi-process: Initialize variables declared with g_auto* 2021-05-21 15:43:57 +01:00
riscv hw/riscv: Fix OT IBEX reset vector 2021-05-11 20:02:07 +10:00
rtc docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
rx hw/rx/rx-gdbsim: Do not accept invalid memory size 2021-05-03 10:07:41 +02:00
s390x docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
scsi docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
sd docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
sh4 Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
smbios hw/smbios: support for type 41 (onboard devices extended information) 2021-05-14 10:26:18 -04:00
sparc docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
sparc64 docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
ssi Trivial patches pull request 20210503 2021-05-05 13:52:00 +01:00
timer docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
tpm docs: fix references to docs/specs/tpm.rst 2021-06-02 06:51:09 +02:00
tricore hw/tricore: Add testdevice for tests in tests/tcg/ 2021-05-18 09:36:21 +01:00
usb docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
vfio docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
virtio docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
watchdog docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
xen docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
xenpv meson: convert hw/arch* 2020-08-21 06:30:33 -04:00
xtensa Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
Kconfig hw/nvme: move nvme emulation out of hw/block 2021-05-17 09:19:00 +02:00
meson.build hw/nvme: move nvme emulation out of hw/block 2021-05-17 09:19:00 +02:00