diff options
| author | Oliver Upton <[email protected]> | 2025-07-08 17:25:22 +0000 |
|---|---|---|
| committer | Oliver Upton <[email protected]> | 2025-07-08 18:36:35 +0000 |
| commit | fff97df2a0bd215979ae224b97e3e4075030a953 (patch) | |
| tree | 966379ececd17d273506eeb50b6b395f3fcc2406 /arch/arm64/kvm/emulate-nested.c | |
| parent | KVM: arm64: nv: Ensure Address size faults affect correct ESR (diff) | |
| download | kernel-fff97df2a0bd215979ae224b97e3e4075030a953.tar.gz kernel-fff97df2a0bd215979ae224b97e3e4075030a953.zip | |
KVM: arm64: Route SEAs to the SError vector when EASE is set
One of the finest additions of FEAT_DoubleFault2 is the ability for
software to request *synchronous* external aborts be taken to the
SError vector, which of coure are *asynchronous* in nature.
Opinions be damned, implement the architecture and send SEAs to the
SError vector if EASE is set for the target context.
Reviewed-by: Marc Zyngier <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Oliver Upton <[email protected]>
Diffstat (limited to 'arch/arm64/kvm/emulate-nested.c')
| -rw-r--r-- | arch/arm64/kvm/emulate-nested.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm64/kvm/emulate-nested.c b/arch/arm64/kvm/emulate-nested.c index ff53109caa05..90cb4b7ae0ff 100644 --- a/arch/arm64/kvm/emulate-nested.c +++ b/arch/arm64/kvm/emulate-nested.c @@ -2834,6 +2834,10 @@ int kvm_inject_nested_sea(struct kvm_vcpu *vcpu, bool iabt, u64 addr) esr |= ESR_ELx_FSC_EXTABT | ESR_ELx_IL; vcpu_write_sys_reg(vcpu, FAR_EL2, addr); + + if (__vcpu_sys_reg(vcpu, SCTLR2_EL2) & SCTLR2_EL1_EASE) + return kvm_inject_nested(vcpu, esr, except_type_serror); + return kvm_inject_nested_sync(vcpu, esr); } |
