]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
kconfig: add CONFIG_MSI_NONBROKEN
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 14 Mar 2019 13:13:34 +0000 (14:13 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 18 Mar 2019 08:39:57 +0000 (09:39 +0100)
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>
hw/intc/Kconfig
hw/pci-host/Kconfig
hw/pci/Kconfig
hw/ppc/Kconfig
hw/riscv/Kconfig
hw/s390x/Kconfig

index de10a6bcbf2908476fde3b6e4a44091cc9972e82..5347f8412c1c9e850045a15cf728f4e08482b6d7 100644 (file)
@@ -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
index b39ea297ba45145505ae72df388b0d0f5a7973d1..8c16d96b3f5ebacb77fd00369d2637f26a3d634b 100644 (file)
@@ -49,3 +49,4 @@ config PCI_EXPRESS_XILINX
 config PCI_EXPRESS_DESIGNWARE
     bool
     select PCI_EXPRESS
+    select MSI_NONBROKEN
index 3b8638b51d70abeb9cbf6277e9ab3a70c02953e1..77f8b005ffb10c5d49b7433146985a559c198b8b 100644 (file)
@@ -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
index 2b83637511eccf361e19f32b04323a5a1f443005..73b473ca241c37f26ee91a2789b7c18dc161946c 100644 (file)
@@ -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
index 8c7fc1f31dd43accec46cdcf47119a542c9e30c1..867421108501dbce1891d44f1341dfe8d39e277d 100644 (file)
@@ -6,6 +6,7 @@ config HART
 
 config SIFIVE
     bool
+    select MSI_NONBROKEN
 
 config SIFIVE_E
     bool
index a7046ea41f337a96f14a7c99fc0c3dc890820d5e..5e7d8a2bae8b488b6aa1d93747df6774278de1b4 100644 (file)
@@ -9,3 +9,4 @@ config S390_CCW_VIRTIO
     select S390_FLIC
     select SCLPCONSOLE
     select VIRTIO_CCW
+    select MSI_NONBROKEN