aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMarc Zyngier2022-01-21 18:42:07 +0000
committerMarc Zyngier2022-01-24 09:39:03 +0000
commit278583055a237270fac70518275ba877bf9e4013 (patch)
tree0c2b24b8f85d87427dbabcfe8f0cae8635e55685 /include
parentd11a327ed95dbec756b99cbfef2a7fd85c9eeb09 (diff)
KVM: arm64: Use shadow SPSR_EL1 when injecting exceptions on !VHE
Injecting an exception into a guest with non-VHE is risky business. Instead of writing in the shadow register for the switch code to restore it, we override the CPU register instead. Which gets overriden a few instructions later by said restore code. The result is that although the guest correctly gets the exception, it will return to the original context in some random state, depending on what was there the first place... Boo. Fix the issue by writing to the shadow register. The original code is absolutely fine on VHE, as the state is already loaded, and writing to the shadow register in that case would actually be a bug. Fixes: bb666c472ca2 ("KVM: arm64: Inject AArch64 exceptions from HYP") Cc: stable@vger.kernel.org Signed-off-by: Marc Zyngier <maz@kernel.org> Reviewed-by: Fuad Tabba <tabba@google.com> Link: https://lore.kernel.org/r/20220121184207.423426-1-maz@kernel.org
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions