kvm: arm64: Fix EC field in inject_abt64
PATCH 1/1 kvm: arm64: Fix EC field in inject_abt64
The EC field of the constructed ESR is conditionally modified by ORing in ESR_ELx_EC_DABT_LOW for a data abort. However, ESR_ELx_EC_SHIFT is missing from this condition.
Signed-off-by Matt Evans <[email protected]>
Acked-by Marc Zyngier <[email protected]>
Cc <[email protected]>
--- arch/arm64/kvm/inject_fault.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm64/kvm/inject_fault.c +1 -1
@@ -162,7 +162,7 @@ static void inject_abt64(struct kvm_vcpu *vcpu, bool is_iabt, unsigned long addr esr |= (ESR_ELx_EC_IABT_CUR << ESR_ELx_EC_SHIFT);if (!is_iabt) - esr |= ESR_ELx_EC_DABT_LOW; + esr |= ESR_ELx_EC_DABT_LOW << ESR_ELx_EC_SHIFT;vcpu_sys_reg (vcpu,ESR_EL1 ) = esr | ESR_ELx_FSC_EXTABT; }
Signature · 1 line
1.9.1
Christoffer Dall
AppliedQuoted 27 lines · Matt Evans
The EC field of the constructed ESR is conditionally modified by ORing in
ESR_ELx_EC_DABT_LOWfor a data abort. However,ESR_ELx_EC_SHIFTis missing from this condition.Signed-off-by Matt Evans <[email protected]>Acked-by Marc Zyngier <[email protected]>Cc <[email protected]>--- arch/arm64/kvm/inject_fault.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)arch/arm64/kvm/inject_fault.c +1
-1@@ -162,7 +162,7 @@ static void inject_abt64(struct kvm_vcpu *vcpu, bool is_iabt, unsigned long addr esr |= (ESR_ELx_EC_IABT_CUR << ESR_ELx_EC_SHIFT);if (!is_iabt) - esr |= ESR_ELx_EC_DABT_LOW; + esr |= ESR_ELx_EC_DABT_LOW << ESR_ELx_EC_SHIFT;vcpu_sys_reg (vcpu,ESR_EL1 ) = esr | ESR_ELx_FSC_EXTABT; }Signature · 1 line
1.9.1
Applied to queue.
Thanks!
-Christoffer