summaryrefslogtreecommitdiffstats
path: root/arch/arm/kvm/coproc.c
diff options
context:
space:
mode:
authorMarc Zyngier2013-01-23 19:21:59 +0100
committerMarc Zyngier2013-02-11 20:05:38 +0100
commitc7e3ba64ba16eddfbfc66ec099860f40e808e124 (patch)
tree42050cb8efe5233629efaabc3917bad4a22741c8 /arch/arm/kvm/coproc.c
parentARM: KVM: arch_timers: Add guest timer core support (diff)
downloadkernel-qcow2-linux-c7e3ba64ba16eddfbfc66ec099860f40e808e124.tar.gz
kernel-qcow2-linux-c7e3ba64ba16eddfbfc66ec099860f40e808e124.tar.xz
kernel-qcow2-linux-c7e3ba64ba16eddfbfc66ec099860f40e808e124.zip
ARM: KVM: arch_timers: Add timer world switch
Do the necessary save/restore dance for the timers in the world switch code. In the process, allow the guest to read the physical counter, which is useful for its own clock_event_device. Reviewed-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Christoffer Dall <c.dall@virtualopensystems.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'arch/arm/kvm/coproc.c')
-rw-r--r--arch/arm/kvm/coproc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/kvm/coproc.c b/arch/arm/kvm/coproc.c
index d782638c7ec0..4ea9a982269c 100644
--- a/arch/arm/kvm/coproc.c
+++ b/arch/arm/kvm/coproc.c
@@ -222,6 +222,10 @@ static const struct coproc_reg cp15_regs[] = {
NULL, reset_unknown, c13_TID_URO },
{ CRn(13), CRm( 0), Op1( 0), Op2( 4), is32,
NULL, reset_unknown, c13_TID_PRIV },
+
+ /* CNTKCTL: swapped by interrupt.S. */
+ { CRn(14), CRm( 1), Op1( 0), Op2( 0), is32,
+ NULL, reset_val, c14_CNTKCTL, 0x00000000 },
};
/* Target specific emulation tables */