]> git.baikalelectronics.ru Git - kernel.git/commit
kvm: Check irqchip mode before assign irqfd
authorPeter Xu <peterx@redhat.com>
Sun, 5 May 2019 08:56:42 +0000 (16:56 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 24 May 2019 19:27:12 +0000 (21:27 +0200)
commit8ae80a7858b59686cde0008b1cdf2b2ba00d3071
treec15b056aac1508450ab54caef254c419f9963ce2
parentc8a3a4487d2637e498194a5d42698c05ed95c577
kvm: Check irqchip mode before assign irqfd

When assigning kvm irqfd we didn't check the irqchip mode but we allow
KVM_IRQFD to succeed with all the irqchip modes.  However it does not
make much sense to create irqfd even without the kernel chips.  Let's
provide a arch-dependent helper to check whether a specific irqfd is
allowed by the arch.  At least for x86, it should make sense to check:

- when irqchip mode is NONE, all irqfds should be disallowed, and,

- when irqchip mode is SPLIT, irqfds that are with resamplefd should
  be disallowed.

For either of the case, previously we'll silently ignore the irq or
the irq ack event if the irqchip mode is incorrect.  However that can
cause misterious guest behaviors and it can be hard to triage.  Let's
fail KVM_IRQFD even earlier to detect these incorrect configurations.

CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Radim Krčmář <rkrcmar@redhat.com>
CC: Alex Williamson <alex.williamson@redhat.com>
CC: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/irq.c
arch/x86/kvm/irq.h
virt/kvm/eventfd.c