2015-06-19 12:24:17

by Alex Bennée

[permalink] [raw]
Subject: [PATCH v6 02/12] KVM: arm64: fix misleading comments in save/restore

The elr_el2 and spsr_el2 registers in fact contain the processor state
before entry into the hypervisor code. In the case of guest state it
could be in either el0 or el1.

Signed-off-by: Alex Bennée <[email protected]>
---
arch/arm64/kvm/hyp.S | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/kvm/hyp.S b/arch/arm64/kvm/hyp.S
index 5befd01..cb9bdd8 100644
--- a/arch/arm64/kvm/hyp.S
+++ b/arch/arm64/kvm/hyp.S
@@ -50,8 +50,8 @@
stp x29, lr, [x3, #80]

mrs x19, sp_el0
- mrs x20, elr_el2 // EL1 PC
- mrs x21, spsr_el2 // EL1 pstate
+ mrs x20, elr_el2 // PC before hyp entry
+ mrs x21, spsr_el2 // pstate before hyp entry

stp x19, x20, [x3, #96]
str x21, [x3, #112]
@@ -82,8 +82,8 @@
ldr x21, [x3, #16]

msr sp_el0, x19
- msr elr_el2, x20 // EL1 PC
- msr spsr_el2, x21 // EL1 pstate
+ msr elr_el2, x20 // PC to restore
+ msr spsr_el2, x21 // pstate to restore

add x3, x2, #CPU_XREG_OFFSET(19)
ldp x19, x20, [x3]
--
2.4.3