KVM: arm/arm64: Rework the timer code to use a timer_map
authorChristoffer Dall <christoffer.dall@arm.com>
Fri, 4 Jan 2019 12:31:22 +0000 (13:31 +0100)
committerMarc Zyngier <marc.zyngier@arm.com>
Tue, 19 Feb 2019 21:05:43 +0000 (21:05 +0000)
commitbee038a67487598ebbe995f85bf60c3a5b2e9099
treec0756ab3d7bc4822adff585a482c940135f4db6e
parent9e01dc76be6a3b5768cb02130d2ff0055a68809a
KVM: arm/arm64: Rework the timer code to use a timer_map

We are currently emulating two timers in two different ways.  When we
add support for nested virtualization in the future, we are going to be
emulating either two timers in two diffferent ways, or four timers in a
single way.

We need a unified data structure to keep track of how we map virtual
state to physical state and we need to cleanup some of the timer code to
operate more independently on a struct arch_timer_context instead of
trying to consider the global state of the VCPU and recomputing all
state.

Co-written with Marc Zyngier <marc.zyngier@arm.com>

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@arm.com>
include/kvm/arm_arch_timer.h
virt/kvm/arm/arch_timer.c
virt/kvm/arm/trace.h