UPSTREAM: KVM: arm64: pkvm: Preserve pending SError on exit from AArch32

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
(cherry picked from commit 271b728605)
Bug: 204960018
Signed-off-by: Will Deacon <willdeacon@google.com>
Change-Id: I088567169eed5d1fc3083e9356bebaa9cef8b120
This commit is contained in:
Marc Zyngier
2021-10-13 13:03:42 +01:00
committed by Will Deacon
parent b9220c350c
commit 81030382f3

View 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;
}