Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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 <matt.evans@arm.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>

authored by

Matt Evans and committed by
Christoffer Dall
e4fe9e7d 06485053

+1 -1
+1 -1
arch/arm64/kvm/inject_fault.c
··· 162 162 esr |= (ESR_ELx_EC_IABT_CUR << ESR_ELx_EC_SHIFT); 163 163 164 164 if (!is_iabt) 165 - esr |= ESR_ELx_EC_DABT_LOW; 165 + esr |= ESR_ELx_EC_DABT_LOW << ESR_ELx_EC_SHIFT; 166 166 167 167 vcpu_sys_reg(vcpu, ESR_EL1) = esr | ESR_ELx_FSC_EXTABT; 168 168 }