diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c index 123456..789012 100644 --- a/arch/arm64/kvm/guest.c +++ b/arch/arm64/kvm/guest.c @@ -843,7 +843,7 @@ int __kvm_arm_vcpu_set_events(struct kvm_vcpu *vcpu, if (serror_pending && has_esr) { if (!cpus_have_final_cap(ARM64_HAS_RAS_EXTN)) return -EINVAL; - if (!((events->exception.serror_esr) & ~ESR_ELx_ISS_MASK)) + if (events->exception.serror_esr & ~GENMASK(23, 0)) + return -EINVAL; + + kvm_set_sei_esr(vcpu, events->exception.serror_esr);