diff options
author | Marc Zyngier <marc.zyngier@arm.com> | 2014-06-23 14:59:13 +0200 |
---|---|---|
committer | Marc Zyngier <marc.zyngier@arm.com> | 2015-08-12 12:28:26 +0200 |
commit | f120cd6533d21075ab103ae6c225b1697853660d (patch) | |
tree | 1b1cd6e41c196c3aa3d5fdfde0d6e37b6c810d8e /include/kvm | |
parent | KVM: arm/arm64: vgic: Prevent userspace injection of a mapped interrupt (diff) | |
download | linux-f120cd6533d21075ab103ae6c225b1697853660d.tar.xz linux-f120cd6533d21075ab103ae6c225b1697853660d.zip |
KVM: arm/arm64: timer: Allow the timer to control the active state
In order to remove the crude hack where we sneak the masked bit
into the timer's control register, make use of the phys_irq_map
API control the active state of the interrupt.
This causes some limited changes to allow for potential error
propagation.
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Diffstat (limited to 'include/kvm')
-rw-r--r-- | include/kvm/arm_arch_timer.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/include/kvm/arm_arch_timer.h b/include/kvm/arm_arch_timer.h index e5966758c093..e1e4d7c38dda 100644 --- a/include/kvm/arm_arch_timer.h +++ b/include/kvm/arm_arch_timer.h @@ -52,13 +52,16 @@ struct arch_timer_cpu { /* Timer IRQ */ const struct kvm_irq_level *irq; + + /* VGIC mapping */ + struct irq_phys_map *map; }; int kvm_timer_hyp_init(void); void kvm_timer_enable(struct kvm *kvm); void kvm_timer_init(struct kvm *kvm); -void kvm_timer_vcpu_reset(struct kvm_vcpu *vcpu, - const struct kvm_irq_level *irq); +int kvm_timer_vcpu_reset(struct kvm_vcpu *vcpu, + const struct kvm_irq_level *irq); void kvm_timer_vcpu_init(struct kvm_vcpu *vcpu); void kvm_timer_flush_hwstate(struct kvm_vcpu *vcpu); void kvm_timer_sync_hwstate(struct kvm_vcpu *vcpu); |