aboutsummaryrefslogtreecommitdiffstats
path: root/include/kvm
diff options
context:
space:
mode:
authorMarc Zyngier <marc.zyngier@arm.com>2014-05-15 05:03:25 -0400
committerChristoffer Dall <christoffer.dall@linaro.org>2014-07-11 07:57:35 -0400
commitf982cf4e9c37b19478c7bc6e0484a43a7e78cf57 (patch)
treeacb2c678e9ef7f0301025b4c2b2296991a402dc3 /include/kvm
parent8f186d522c69bb18dd9b93a634da4953228c67d4 (diff)
KVM: ARM: vgic: revisit implementation of irqchip_in_kernel
So far, irqchip_in_kernel() was implemented by testing the value of vctrl_base, which worked fine with GICv2. With GICv3, this field is useless, as we're using system registers instead of a emmory mapped interface. To solve this, add a boolean flag indicating if the we're using a vgic or not. 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_vgic.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/kvm/arm_vgic.h b/include/kvm/arm_vgic.h
index d8d52a9ca6a1..f6b9fec6fcac 100644
--- a/include/kvm/arm_vgic.h
+++ b/include/kvm/arm_vgic.h
@@ -117,6 +117,7 @@ struct vgic_params {
117struct vgic_dist { 117struct vgic_dist {
118#ifdef CONFIG_KVM_ARM_VGIC 118#ifdef CONFIG_KVM_ARM_VGIC
119 spinlock_t lock; 119 spinlock_t lock;
120 bool in_kernel;
120 bool ready; 121 bool ready;
121 122
122 /* Virtual control interface mapping */ 123 /* Virtual control interface mapping */
@@ -212,7 +213,7 @@ int kvm_vgic_vcpu_pending_irq(struct kvm_vcpu *vcpu);
212bool vgic_handle_mmio(struct kvm_vcpu *vcpu, struct kvm_run *run, 213bool vgic_handle_mmio(struct kvm_vcpu *vcpu, struct kvm_run *run,
213 struct kvm_exit_mmio *mmio); 214 struct kvm_exit_mmio *mmio);
214 215
215#define irqchip_in_kernel(k) (!!((k)->arch.vgic.vctrl_base)) 216#define irqchip_in_kernel(k) (!!((k)->arch.vgic.in_kernel))
216#define vgic_initialized(k) ((k)->arch.vgic.ready) 217#define vgic_initialized(k) ((k)->arch.vgic.ready)
217 218
218int vgic_v2_probe(struct device_node *vgic_node, 219int vgic_v2_probe(struct device_node *vgic_node,