aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kvm
diff options
context:
space:
mode:
authorMark Rutland <mark.rutland@arm.com>2013-03-26 09:41:35 -0400
committerMark Rutland <mark.rutland@arm.com>2013-06-07 05:20:27 -0400
commitf793c23ebbe5afd1cabf4a42a3a297022213756f (patch)
tree020318db2b30ce500241d60480ea96bcbadf1b78 /arch/arm/kvm
parent0af0b189abf73d232af782df2f999235cd2fed7f (diff)
ARM: KVM: arch_timers: zero CNTVOFF upon return to host
To use the virtual counters from the host, we need to ensure that CNTVOFF doesn't change unexpectedly. When we change to a guest, we replace the host's CNTVOFF, but we don't restore it when returning to the host. As the host sets CNTVOFF to zero, and never changes it, we can simply zero CNTVOFF when returning to the host. This patch adds said zeroing to the return to host path. Signed-off-by: Mark Rutland <mark.rutland@arm.com> Acked-by: Marc Zyngier <marc.zyngier@arm.com> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Acked-by: Christoffer Dall <cdall@cs.columbia.edu>
Diffstat (limited to 'arch/arm/kvm')
-rw-r--r--arch/arm/kvm/interrupts_head.S4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/kvm/interrupts_head.S b/arch/arm/kvm/interrupts_head.S
index 3c8f2f0b4c5e..d43cfb5b37c4 100644
--- a/arch/arm/kvm/interrupts_head.S
+++ b/arch/arm/kvm/interrupts_head.S
@@ -497,6 +497,10 @@ vcpu .req r0 @ vcpu pointer always in r0
497 add r5, vcpu, r4 497 add r5, vcpu, r4
498 strd r2, r3, [r5] 498 strd r2, r3, [r5]
499 499
500 @ Ensure host CNTVCT == CNTPCT
501 mov r2, #0
502 mcrr p15, 4, r2, r2, c14 @ CNTVOFF
503
5001: 5041:
501#endif 505#endif
502 @ Allow physical timer/counter access for the host 506 @ Allow physical timer/counter access for the host