qemu/target/ppc
Leandro Lupori fb22d743b9 target/ppc: Fix regression in Radix MMU
Commit 47e83d9107 ended up unintentionally changing the control flow
of ppc_radix64_process_scoped_xlate(). When guest_visible is false,
it must not raise an exception, even if the radix configuration is
not valid.

This regression prevented Linux boot in a nested environment with
L1 using TCG and emulating KVM (cap-nested-hv=on) and L2 using
KVM. L2 would hang on Linux's futex_init(), when it tested how a
futex_atomic_cmpxchg_inatomic() handled a fault, because L1 would
start a loop of trying to perform partition scoped translations
and raising exceptions.

Fixes: 47e83d9107 ("target/ppc: Improve Radix xlate level validation")
Reported-by: Victor Colombo <victor.colombo@eldorado.org.br>
Signed-off-by: Leandro Lupori <leandro.lupori@eldorado.org.br>
Tested-by: Víctor Colombo <victor.colombo@eldorado.org.br>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20221028183617.121786-1-leandro.lupori@eldorado.org.br>
[danielhb: use %"PRIu64" to print 'nls']
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
2022-10-29 06:34:52 -03:00
..
translate target/ppc: Use gvec to decode XVTSTDC[DS]P 2022-10-28 13:15:22 -03:00
arch_dump.c dump: Replace opaque DumpState pointer with a typed one 2022-10-06 19:30:43 +04:00
compat.c
cpu_init.c target/ppc: move the p*_interrupt_powersave methods to excp_helper.c 2022-10-28 13:15:22 -03:00
cpu-models.c target/ppc: Fix MPC8555 and MPC8560 core type to e500v1 2022-07-06 10:30:01 -03:00
cpu-models.h target/ppc: Fix MPC8555 and MPC8560 core type to e500v1 2022-07-06 10:30:01 -03:00
cpu-param.h Normalize header guard symbol definition 2022-05-11 16:50:26 +02:00
cpu-qom.h target/ppc: Fix host PVR matching for KVM 2022-08-30 16:20:29 -03:00
cpu.c target/ppc: introduce ppc_maybe_interrupt 2022-10-28 13:15:22 -03:00
cpu.h target/ppc: Add new PMC HFLAGS 2022-10-28 13:15:23 -03:00
dfp_helper.c target/ppc: Set result to QNaN for DENBCD when VXCVI occurs 2022-09-20 10:54:06 -03:00
excp_helper.c target/ppc: move the p*_interrupt_powersave methods to excp_helper.c 2022-10-28 13:15:22 -03:00
fpu_helper.c target/ppc: Moved XSTSTDC[QDS]P to decodetree 2022-10-28 13:15:22 -03:00
gdbstub.c target/ppc: Remove msr_le macro 2022-05-05 15:36:17 -03:00
helper_regs.c target/ppc: Add new PMC HFLAGS 2022-10-28 13:15:23 -03:00
helper_regs.h
helper.h target/ppc: Increment PMC5 with inline insns 2022-10-28 13:15:23 -03:00
insn32.decode target/ppc: Moved XSTSTDC[QDS]P to decodetree 2022-10-28 13:15:22 -03:00
insn64.decode target/ppc: Implemented [pm]xvbf16ger2* 2022-05-26 17:11:33 -03:00
int_helper.c target/ppc: Move VABSDU[BHW] to decodetree and use gvec 2022-10-28 13:15:22 -03:00
internal.h target/ppc: move the p*_interrupt_powersave methods to excp_helper.c 2022-10-28 13:15:22 -03:00
Kconfig
kvm_ppc.h
kvm-stub.c
kvm.c kvm: allow target-specific accelerator properties 2022-10-10 09:23:16 +02:00
machine.c target/ppc: Fix host PVR matching for KVM 2022-08-30 16:20:29 -03:00
mem_helper.c target/ppc: Remove msr_hv macro 2022-05-05 15:36:17 -03:00
meson.build target/ppc: make power8-pmu.c CONFIG_TCG only 2022-03-02 06:51:36 +01:00
misc_helper.c target/ppc: always use ppc_set_irq to set env->pending_interrupts 2022-10-28 13:15:22 -03:00
mmu_common.c target/ppc: Remove msr_dr macro 2022-05-05 15:36:17 -03:00
mmu_helper.c target/ppc: Implement ISA 3.00 tlbie[l] 2022-07-18 13:59:43 -03:00
mmu-book3s-v3.c ppc: Check partition and process table alignment 2022-07-18 13:59:43 -03:00
mmu-book3s-v3.h target/ppc: Implement ISA 3.00 tlbie[l] 2022-07-18 13:59:43 -03:00
mmu-books.h
mmu-hash32.c target/ppc: Remove PowerPC 601 CPUs 2022-02-09 09:08:55 +01:00
mmu-hash32.h target/ppc: Remove PowerPC 601 CPUs 2022-02-09 09:08:55 +01:00
mmu-hash64.c target/ppc: Implement slbiag 2022-07-18 13:59:43 -03:00
mmu-hash64.h
mmu-radix64.c target/ppc: Fix regression in Radix MMU 2022-10-29 06:34:52 -03:00
mmu-radix64.h
monitor.c target/ppc: check tb_env != 0 before printing TBU/TBL/DECR 2022-07-18 13:59:43 -03:00
power8-pmu-regs.c.inc target/ppc: fix PMU Group A register read/write exceptions 2022-07-18 13:59:43 -03:00
power8-pmu.c target/ppc: Increment PMC5 with inline insns 2022-10-28 13:15:23 -03:00
power8-pmu.h target/ppc: Increment PMC5 with inline insns 2022-10-28 13:15:23 -03:00
spr_common.h target/ppc: Move common SPR functions out of cpu_init 2022-02-18 08:34:15 +01:00
tcg-stub.c
timebase_helper.c target/ppc: fix exception error code in helper_{load, store}_dcr 2022-07-18 13:59:43 -03:00
trace-events target/ppc: Improve KVM hypercall trace 2022-04-20 18:00:30 -03:00
trace.h
translate.c target/ppc: Increment PMC5 with inline insns 2022-10-28 13:15:23 -03:00
user_only_helper.c