aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Kamensky <victor.kamensky@linaro.org>2014-06-12 12:30:09 -0400
committerChristoffer Dall <christoffer.dall@linaro.org>2014-07-11 07:57:41 -0400
commitba083d20d8cfa9e999043cd89c4ebc964ccf8927 (patch)
tree850c08e9cc797365b92cd27942139c7448b88631
parentb30070862edbdb252f9d0d3a1e61b8dc4c68e3d2 (diff)
ARM64: KVM: store kvm_vcpu_fault_info est_el2 as word
esr_el2 field of struct kvm_vcpu_fault_info has u32 type. It should be stored as word. Current code works in LE case because existing puts least significant word of x1 into esr_el2, and it puts most significant work of x1 into next field, which accidentally is OK because it is updated again by next instruction. But existing code breaks in BE case. Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org> Acked-by: Christoffer Dall <christoffer.dall@linaro.org> Acked-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
-rw-r--r--arch/arm64/kvm/hyp.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/kvm/hyp.S b/arch/arm64/kvm/hyp.S
index 5945f3bdea7a..7874e022d077 100644
--- a/arch/arm64/kvm/hyp.S
+++ b/arch/arm64/kvm/hyp.S
@@ -762,7 +762,7 @@ el1_trap:
762 mrs x2, far_el2 762 mrs x2, far_el2
763 763
7642: mrs x0, tpidr_el2 7642: mrs x0, tpidr_el2
765 str x1, [x0, #VCPU_ESR_EL2] 765 str w1, [x0, #VCPU_ESR_EL2]
766 str x2, [x0, #VCPU_FAR_EL2] 766 str x2, [x0, #VCPU_FAR_EL2]
767 str x3, [x0, #VCPU_HPFAR_EL2] 767 str x3, [x0, #VCPU_HPFAR_EL2]
768 768