KVM: arm64: Skip instruction after emulating write to TCR_EL1
authorOliver Upton <oliver.upton@linux.dev>
Fri, 28 Jul 2023 00:08:24 +0000 (00:08 +0000)
committerOliver Upton <oliver.upton@linux.dev>
Fri, 28 Jul 2023 17:11:23 +0000 (17:11 +0000)
commit74158a8cad79d2f5dcf71508993664c5cfcbfa3c
tree4f41122ca99ab2ee5fa4bebb23e22e3723fd4aba
parent01b94b0f3922039f7d3e0d1eeb33b8891746b65f
KVM: arm64: Skip instruction after emulating write to TCR_EL1

Whelp, this is embarrassing. Since commit 082fdfd13841 ("KVM: arm64:
Prevent guests from enabling HA/HD on Ampere1") KVM traps writes to
TCR_EL1 on AmpereOne to work around an erratum in the unadvertised
HAFDBS implementation, preventing the guest from enabling the feature.
Unfortunately, I failed virtualization 101 when working on that change,
and forgot to advance PC after instruction emulation.

Do the right thing and skip the MSR instruction after emulating the
write.

Fixes: 082fdfd13841 ("KVM: arm64: Prevent guests from enabling HA/HD on Ampere1")
Acked-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230728000824.3848025-1-oliver.upton@linux.dev
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
arch/arm64/kvm/hyp/include/hyp/switch.h