diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2019-03-14 14:13:34 +0100 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2019-03-18 09:39:57 +0100 |
commit | ca9b7e29de3e79d6fe21bfc21297770a98d54e58 (patch) | |
tree | b5e009179f964299b85c3fb471999a851cc60406 /hw | |
parent | 4f5604c41d4a4d41964dfacaa87b08178abcc838 (diff) |
kconfig: add CONFIG_MSI_NONBROKEN
Not all interrupt controllers have a working implementation of
message-signalled interrupts; in some cases, the guest may expect
MSI to work but it won't due to the buggy or lacking emulation.
In QEMU this is represented by the "msi_nonbroken" variable. This
patch adds a new configuration symbol enabled whenever the binary
contains an interrupt controller that will set "msi_nonbroken". We
can then use it to remove devices that cannot be possibly added
to the machine, because they require MSI.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/intc/Kconfig | 3 | ||||
-rw-r--r-- | hw/pci-host/Kconfig | 1 | ||||
-rw-r--r-- | hw/pci/Kconfig | 6 | ||||
-rw-r--r-- | hw/ppc/Kconfig | 1 | ||||
-rw-r--r-- | hw/riscv/Kconfig | 1 | ||||
-rw-r--r-- | hw/s390x/Kconfig | 1 |
6 files changed, 13 insertions, 0 deletions
diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig index de10a6bcbf..5347f8412c 100644 --- a/hw/intc/Kconfig +++ b/hw/intc/Kconfig @@ -12,12 +12,15 @@ config IOAPIC config ARM_GIC bool + select MSI_NONBROKEN config OPENPIC bool + select MSI_NONBROKEN config APIC bool + select MSI_NONBROKEN config ARM_GIC_KVM bool diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig index b39ea297ba..8c16d96b3f 100644 --- a/hw/pci-host/Kconfig +++ b/hw/pci-host/Kconfig @@ -49,3 +49,4 @@ config PCI_EXPRESS_XILINX config PCI_EXPRESS_DESIGNWARE bool select PCI_EXPRESS + select MSI_NONBROKEN diff --git a/hw/pci/Kconfig b/hw/pci/Kconfig index 3b8638b51d..77f8b005ff 100644 --- a/hw/pci/Kconfig +++ b/hw/pci/Kconfig @@ -7,3 +7,9 @@ config PCI_EXPRESS config PCI_DEVICES bool + +config MSI_NONBROKEN + # selected by interrupt controllers that do not support MSI, + # or support it and have a good implementation. See commit + # 47d2b0f33c664533b8dbd5cb17faa8e6a01afe1f. + bool diff --git a/hw/ppc/Kconfig b/hw/ppc/Kconfig index 2b83637511..73b473ca24 100644 --- a/hw/ppc/Kconfig +++ b/hw/ppc/Kconfig @@ -8,6 +8,7 @@ config PSERIES select VFIO if LINUX # needed by spapr_pci_vfio.c select XICS_SPAPR select XIVE_SPAPR + select MSI_NONBROKEN config SPAPR_RNG bool diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig index 8c7fc1f31d..8674211085 100644 --- a/hw/riscv/Kconfig +++ b/hw/riscv/Kconfig @@ -6,6 +6,7 @@ config HART config SIFIVE bool + select MSI_NONBROKEN config SIFIVE_E bool diff --git a/hw/s390x/Kconfig b/hw/s390x/Kconfig index a7046ea41f..5e7d8a2bae 100644 --- a/hw/s390x/Kconfig +++ b/hw/s390x/Kconfig @@ -9,3 +9,4 @@ config S390_CCW_VIRTIO select S390_FLIC select SCLPCONSOLE select VIRTIO_CCW + select MSI_NONBROKEN |