OSDN Git Service

KVM: arm64: pkvm: Preserve pending SError on exit from AArch32
authorMarc Zyngier <maz@kernel.org>
Wed, 13 Oct 2021 12:03:42 +0000 (13:03 +0100)
committerMarc Zyngier <maz@kernel.org>
Mon, 18 Oct 2021 15:57:09 +0000 (16:57 +0100)
Don't drop a potential SError when a guest gets caught red-handed
running AArch32 code.

Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Fuad Tabba <tabba@google.com>
Tested-by: Fuad Tabba <tabba@google.com>
Link: https://lore.kernel.org/r/20211013120346.2926621-8-maz@kernel.org
arch/arm64/kvm/hyp/nvhe/switch.c

index f25b635..481c365 100644 (file)
@@ -256,7 +256,8 @@ static bool handle_aarch32_guest(struct kvm_vcpu *vcpu, u64 *exit_code)
                 * protected VMs.
                 */
                vcpu->arch.target = -1;
-               *exit_code = ARM_EXCEPTION_IL;
+               *exit_code &= BIT(ARM_EXIT_WITH_SERROR_BIT);
+               *exit_code |= ARM_EXCEPTION_IL;
                return false;
        }