From bd8b215bce453706c3951460cc7e6627ccb90314 Mon Sep 17 00:00:00 2001 From: "Michael S. Tsirkin" Date: Wed, 20 Oct 2010 07:09:37 +0200 Subject: [PATCH] msix: fix irqchip breakage msix.c doesn't include linux kvm header anymore, so IRQCHIP macro is never defined, which resulted in a broken msix support. As a fix, stub out kvm_set_irq and remove the remaining ifdefs. Signed-off-by: Michael S. Tsirkin Signed-off-by: Marcelo Tosatti --- hw/msix.c | 2 -- kvm-stub.c | 6 ++++++ kvm.h | 2 ++ qemu-kvm.h | 1 - 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/hw/msix.c b/hw/msix.c index f12e4aaf9c..4b6133d643 100644 --- a/hw/msix.c +++ b/hw/msix.c @@ -509,12 +509,10 @@ void msix_notify(PCIDevice *dev, unsigned vector) return; } -#ifdef KVM_CAP_IRQCHIP if (kvm_enabled() && kvm_irqchip_in_kernel()) { kvm_set_irq(dev->msix_irq_entries[vector].gsi, 1, NULL); return; } -#endif address = pci_get_long(table_entry + MSIX_MSG_UPPER_ADDR); address = (address << 32) | pci_get_long(table_entry + MSIX_MSG_ADDR); diff --git a/kvm-stub.c b/kvm-stub.c index 3c2deec33e..aeee3c0403 100644 --- a/kvm-stub.c +++ b/kvm-stub.c @@ -176,3 +176,9 @@ int kvm_commit_irq_routes(void) { return -ENOSYS; } + +int kvm_set_irq(int irq, int level, int *status) +{ + assert(0); + return -ENOSYS; +} diff --git a/kvm.h b/kvm.h index d484a3f63d..74dfa4878a 100644 --- a/kvm.h +++ b/kvm.h @@ -214,4 +214,6 @@ int kvm_commit_irq_routes(void); int kvm_irqchip_in_kernel(void); +int kvm_set_irq(int irq, int level, int *status); + #endif diff --git a/qemu-kvm.h b/qemu-kvm.h index 9c08ab417c..c6f56326aa 100644 --- a/qemu-kvm.h +++ b/qemu-kvm.h @@ -785,7 +785,6 @@ void kvm_load_lapic(CPUState *env); void kvm_hpet_enable_kpit(void); void kvm_hpet_disable_kpit(void); -int kvm_set_irq(int irq, int level, int *status); int kvm_physical_memory_set_dirty_tracking(int enable); -- 2.11.4.GIT