]> git.hungrycats.org Git - linux/commitdiff
ARM64: KVM: store kvm_vcpu_fault_info est_el2 as word
authorVictor Kamensky <victor.kamensky@linaro.org>
Thu, 12 Jun 2014 16:30:09 +0000 (09:30 -0700)
committerJiri Slaby <jslaby@suse.cz>
Thu, 30 Apr 2015 09:15:08 +0000 (11:15 +0200)
commit ba083d20d8cfa9e999043cd89c4ebc964ccf8927 upstream.

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>
Signed-off-by: Shannon Zhao <shannon.zhao@linaro.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
arch/arm64/kvm/hyp.S

index 1144e4412838610bf57161fc3f93ae53c604121b..caf3cca922c9c85d2bd9a0d9beaf083c4c4af511 100644 (file)
@@ -817,7 +817,7 @@ el1_trap:
        mrs     x2, far_el2
 
 2:     mrs     x0, tpidr_el2
-       str     x1, [x0, #VCPU_ESR_EL2]
+       str     w1, [x0, #VCPU_ESR_EL2]
        str     x2, [x0, #VCPU_FAR_EL2]
        str     x3, [x0, #VCPU_HPFAR_EL2]