KVM: ARM: vgic: plug irq injection race
[firefly-linux-kernel-4.4.55.git] / virt / kvm / arm / vgic.c
index ff88dbcacc292dfcf8d45ecae297b3efbb7b6057..5744a49d76805ccbc5c36c37a106f1ba8d1a597a 100644 (file)
@@ -1585,7 +1585,8 @@ out:
 int kvm_vgic_inject_irq(struct kvm *kvm, int cpuid, unsigned int irq_num,
                        bool level)
 {
-       if (vgic_update_irq_pending(kvm, cpuid, irq_num, level))
+       if (likely(vgic_initialized(kvm)) &&
+           vgic_update_irq_pending(kvm, cpuid, irq_num, level))
                vgic_kick_vcpus(kvm);
 
        return 0;