]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
KVM: x86: set KVM_REQ_EVENT on local interrupt request from user space
authorMatt Gingell <gingell@google.com>
Mon, 16 Nov 2015 23:26:05 +0000 (15:26 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 18 Nov 2015 11:25:38 +0000 (12:25 +0100)
Set KVM_REQ_EVENT when a PIC in user space injects a local interrupt.

Currently a request is only made when neither the PIC nor the APIC is in
the kernel, which is not sufficient in the split IRQ chip case.

This addresses a problem in QEMU where interrupts are delayed until
another path invokes the event loop.

Reviewed-by: Steve Rutherford <srutherford@google.com>
Signed-off-by: Matt Gingell <gingell@google.com>
Fixes: 1c1a9ce973a7863dd46767226bce2a5f12d48bc6
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c

index 32f6b760682c283894c967ccab0d4ff76beafdea..f254e296d368fe299e32d403e1c32aff7ac95b91 100644 (file)
@@ -2806,6 +2806,7 @@ static int kvm_vcpu_ioctl_interrupt(struct kvm_vcpu *vcpu,
                return -EEXIST;
 
        vcpu->arch.pending_external_vector = irq->irq;
+       kvm_make_request(KVM_REQ_EVENT, vcpu);
        return 0;
 }