KVM: x86: decouple irqchip_in_kernel() and pic_irqchip()
[sfrench/cifs-2.6.git] / arch / x86 / kvm / irq.h
index 035731eb389755b6f92a6df270b0c00dc25bd81c..f4965bc2613c45b98835b17b44d31d33d695a42d 100644 (file)
@@ -93,18 +93,19 @@ static inline int pic_in_kernel(struct kvm *kvm)
 
 static inline int irqchip_split(struct kvm *kvm)
 {
-       return kvm->arch.irqchip_split;
+       return kvm->arch.irqchip_mode == KVM_IRQCHIP_SPLIT;
 }
 
-static inline int irqchip_in_kernel(struct kvm *kvm)
+static inline int irqchip_kernel(struct kvm *kvm)
 {
-       struct kvm_pic *vpic = pic_irqchip(kvm);
-       bool ret;
+       return kvm->arch.irqchip_mode == KVM_IRQCHIP_KERNEL;
+}
 
-       ret = (vpic != NULL);
-       ret |= irqchip_split(kvm);
+static inline int irqchip_in_kernel(struct kvm *kvm)
+{
+       bool ret = kvm->arch.irqchip_mode != KVM_IRQCHIP_NONE;
 
-       /* Read vpic before kvm->irq_routing.  */
+       /* Matches with wmb after initializing kvm->irq_routing. */
        smp_rmb();
        return ret;
 }