diff options
author | Ingo Molnar <mingo@kernel.org> | 2016-12-11 15:07:13 +0300 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-12-11 15:07:13 +0300 |
commit | 6f38751510073cc054c5dffc3339b22f9385ceed (patch) | |
tree | b7704b2d3388293118a6794f7a858e8891bcec60 /arch/x86/kvm/irq_comm.c | |
parent | f4ec57b632fe15ed7a355099cb96ed4b647416de (diff) | |
parent | 045169816b31b10faed984b01c390db1b32ee4c1 (diff) | |
download | linux-6f38751510073cc054c5dffc3339b22f9385ceed.tar.xz |
Merge branch 'linus' into locking/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kvm/irq_comm.c')
-rw-r--r-- | arch/x86/kvm/irq_comm.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/x86/kvm/irq_comm.c b/arch/x86/kvm/irq_comm.c index 4da03030d5a7..6c0191615f23 100644 --- a/arch/x86/kvm/irq_comm.c +++ b/arch/x86/kvm/irq_comm.c @@ -41,6 +41,15 @@ static int kvm_set_pic_irq(struct kvm_kernel_irq_routing_entry *e, bool line_status) { struct kvm_pic *pic = pic_irqchip(kvm); + + /* + * XXX: rejecting pic routes when pic isn't in use would be better, + * but the default routing table is installed while kvm->arch.vpic is + * NULL and KVM_CREATE_IRQCHIP can race with KVM_IRQ_LINE. + */ + if (!pic) + return -1; + return kvm_pic_set_irq(pic, e->irqchip.pin, irq_source_id, level); } @@ -49,6 +58,10 @@ static int kvm_set_ioapic_irq(struct kvm_kernel_irq_routing_entry *e, bool line_status) { struct kvm_ioapic *ioapic = kvm->arch.vioapic; + + if (!ioapic) + return -1; + return kvm_ioapic_set_irq(ioapic, e->irqchip.pin, irq_source_id, level, line_status); } |