diff options
author | Alex Williamson <alex.williamson@redhat.com> | 2012-12-10 11:30:03 -0700 |
---|---|---|
committer | Alex Williamson <alex.williamson@redhat.com> | 2012-12-10 11:30:03 -0700 |
commit | d281084d3e51f03999d12a506491a0c6f31b40e8 (patch) | |
tree | 3ec28807482b18a2dbb6abf611d1afd1ee849c1b /hw | |
parent | 1c97e303d4ea80a2691334b0febe87a50660f99d (diff) | |
download | qemu-d281084d3e51f03999d12a506491a0c6f31b40e8.zip qemu-d281084d3e51f03999d12a506491a0c6f31b40e8.tar.gz qemu-d281084d3e51f03999d12a506491a0c6f31b40e8.tar.bz2 |
vfio-pci: Don't use kvm_irqchip_in_kernel
kvm_irqchip_in_kernel() has an architecture specific meaning, so
we shouldn't be using it to determine whether to enabled KVM INTx
bypass. kvm_irqfds_enabled() seems most appropriate. Also use this
to protect our other call to kvm_check_extension() as that explodes
when KVM isn't enabled.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Cc: qemu-stable@nongnu.org
Diffstat (limited to 'hw')
-rw-r--r-- | hw/vfio_pci.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/hw/vfio_pci.c b/hw/vfio_pci.c index 7c27834..fbfe670 100644 --- a/hw/vfio_pci.c +++ b/hw/vfio_pci.c @@ -275,7 +275,7 @@ static void vfio_enable_intx_kvm(VFIODevice *vdev) int ret, argsz; int32_t *pfd; - if (!kvm_irqchip_in_kernel() || + if (!kvm_irqfds_enabled() || vdev->intx.route.mode != PCI_INTX_ENABLED || !kvm_check_extension(kvm_state, KVM_CAP_IRQFD_RESAMPLE)) { return; @@ -438,7 +438,8 @@ static int vfio_enable_intx(VFIODevice *vdev) * Only conditional to avoid generating error messages on platforms * where we won't actually use the result anyway. */ - if (kvm_check_extension(kvm_state, KVM_CAP_IRQFD_RESAMPLE)) { + if (kvm_irqfds_enabled() && + kvm_check_extension(kvm_state, KVM_CAP_IRQFD_RESAMPLE)) { vdev->intx.route = pci_device_route_intx_to_irq(&vdev->pdev, vdev->intx.pin); } |