fbe5ac5671
The HSTR_EL2 register allows the hypervisor to trap AArch32 EL1 and
EL0 accesses to cp15 registers. We incorrectly implemented this so
they trap to EL1 when we detect the need for a HSTR trap at code
generation time. (The check in access_check_cp_reg() which we do at
runtime to catch traps from EL0 is correctly routing them to EL2.)
Use the correct target EL when generating the code to take the trap.
Cc: qemu-stable@nongnu.org
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2226
Fixes:
|
||
---|---|---|
.. | ||
a32-uncond.decode | ||
a32.decode | ||
a64.decode | ||
arm_ldst.h | ||
cpu32.c | ||
cpu64.c | ||
cpu-v7m.c | ||
crypto_helper.c | ||
helper-a64.c | ||
helper-a64.h | ||
helper-mve.h | ||
helper-sme.h | ||
helper-sve.h | ||
hflags.c | ||
iwmmxt_helper.c | ||
m_helper.c | ||
m-nocp.decode | ||
meson.build | ||
mte_helper.c | ||
mve_helper.c | ||
mve.decode | ||
neon_helper.c | ||
neon-dp.decode | ||
neon-ls.decode | ||
neon-shared.decode | ||
op_helper.c | ||
pauth_helper.c | ||
psci.c | ||
sme_helper.c | ||
sme-fa64.decode | ||
sme.decode | ||
sve_helper.c | ||
sve_ldst_internal.h | ||
sve.decode | ||
t16.decode | ||
t32.decode | ||
tlb_helper.c | ||
translate-a32.h | ||
translate-a64.c | ||
translate-a64.h | ||
translate-m-nocp.c | ||
translate-mve.c | ||
translate-neon.c | ||
translate-sme.c | ||
translate-sve.c | ||
translate-vfp.c | ||
translate.c | ||
translate.h | ||
vec_helper.c | ||
vec_internal.h | ||
vfp-uncond.decode | ||
vfp.decode |