On 3/14/19 3:30 PM, Paolo Bonzini wrote: > For devices that require msi_init/msix_init to succeed, add a > dependency on CONFIG_MSI. This will prevent those devices from > appearing in a binary that cannot instantiate them. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > Kconfig.host | 3 +++ > Makefile | 3 ++- > hw/Kconfig | 1 + > hw/misc/Kconfig | 4 ++-- > hw/net/Kconfig | 4 ++-- > hw/pci-bridge/Kconfig | 6 +++--- > hw/rdma/Kconfig | 3 +++ > hw/rdma/Makefile.objs | 6 ++---- > 8 files changed, 18 insertions(+), 12 deletions(-) > create mode 100644 hw/rdma/Kconfig > > diff --git a/Kconfig.host b/Kconfig.host > index add5b179f7..aec95365ff 100644 > --- a/Kconfig.host > +++ b/Kconfig.host > @@ -31,3 +31,6 @@ config XEN > > config VIRTFS > bool > + > +config PVRDMA > + bool > diff --git a/Makefile b/Makefile > index 6ccb8639b0..bdffa4e7cc 100644 > --- a/Makefile > +++ b/Makefile > @@ -356,7 +356,8 @@ MINIKCONF_ARGS = \ > CONFIG_X11=$(CONFIG_X11) \ > CONFIG_VHOST_USER=$(CONFIG_VHOST_USER) \ > CONFIG_VIRTFS=$(CONFIG_VIRTFS) \ > - CONFIG_LINUX=$(CONFIG_LINUX) > + CONFIG_LINUX=$(CONFIG_LINUX) \ > + CONFIG_PVRDMA=$(CONFIG_PVRDMA) > > MINIKCONF_INPUTS = $(SRC_PATH)/Kconfig.host $(SRC_PATH)/hw/Kconfig > MINIKCONF = $(PYTHON) $(SRC_PATH)/scripts/minikconf.py \ > diff --git a/hw/Kconfig b/hw/Kconfig > index d5ecd02070..88b9f15007 100644 > --- a/hw/Kconfig > +++ b/hw/Kconfig > @@ -26,6 +26,7 @@ source pci-bridge/Kconfig > source pci-host/Kconfig > source pcmcia/Kconfig > source pci/Kconfig > +source rdma/Kconfig > source scsi/Kconfig > source sd/Kconfig > source smbios/Kconfig > diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig > index 2c60be99bc..eaf057eb0d 100644 > --- a/hw/misc/Kconfig > +++ b/hw/misc/Kconfig > @@ -34,7 +34,7 @@ config PCI_TESTDEV > config EDU > bool > default y if TEST_DEVICES > - depends on PCI > + depends on PCI && MSI
Renaming current MSI -> PCI_MSI this could be simplified as depends on PCI_MSI > > config PCA9552 > bool > @@ -67,7 +67,7 @@ config MACIO > config IVSHMEM_DEVICE > bool > default y if PCI_DEVICES > - depends on PCI && LINUX && IVSHMEM > + depends on PCI && LINUX && IVSHMEM && MSI > > config ECCMEMCTL > bool > diff --git a/hw/net/Kconfig b/hw/net/Kconfig > index c00ec03cd1..5b6a506627 100644 > --- a/hw/net/Kconfig > +++ b/hw/net/Kconfig > @@ -28,7 +28,7 @@ config E1000_PCI > config E1000E_PCI_EXPRESS > bool > default y if PCI_DEVICES > - depends on PCI_EXPRESS > + depends on PCI_EXPRESS && MSI > > config RTL8139_PCI > bool > @@ -107,7 +107,7 @@ config ETSEC > config ROCKER > bool > default y if PCI_DEVICES > - depends on PCI > + depends on PCI && MSI > > config CAN_BUS > bool > diff --git a/hw/pci-bridge/Kconfig b/hw/pci-bridge/Kconfig > index b167b98497..266072b2ee 100644 > --- a/hw/pci-bridge/Kconfig > +++ b/hw/pci-bridge/Kconfig > @@ -1,7 +1,7 @@ > config PCIE_PORT > bool > default y if PCI_DEVICES > - depends on PCI_EXPRESS > + depends on PCI_EXPRESS && MSI > > config PXB > bool > @@ -10,12 +10,12 @@ config PXB > config XIO3130 > bool > default y if PCI_DEVICES > - depends on PCI_EXPRESS > + depends on PCI_EXPRESS && MSI > > config IOH3420 > bool > default y if PCI_DEVICES > - depends on PCI_EXPRESS > + depends on PCI_EXPRESS && MSI > > config I82801B11 > bool > diff --git a/hw/rdma/Kconfig b/hw/rdma/Kconfig > new file mode 100644 > index 0000000000..69ef0b49be > --- /dev/null > +++ b/hw/rdma/Kconfig > @@ -0,0 +1,3 @@ > +config VMW_PVRDMA > + default y if PCI_DEVICES > + depends on PVRDMA && PCI && MSI > diff --git a/hw/rdma/Makefile.objs b/hw/rdma/Makefile.objs > index bd36cbf51c..533ab2f84a 100644 > --- a/hw/rdma/Makefile.objs > +++ b/hw/rdma/Makefile.objs > @@ -1,5 +1,3 @@ > -ifeq ($(CONFIG_PVRDMA),y) > -obj-$(CONFIG_PCI) += rdma_utils.o rdma_backend.o rdma_rm.o > -obj-$(CONFIG_PCI) += vmw/pvrdma_dev_ring.o vmw/pvrdma_cmd.o \ > +obj-$(CONFIG_VMW_PVRDMA) += rdma_utils.o rdma_backend.o rdma_rm.o > +obj-$(CONFIG_VMW_PVRDMA) += vmw/pvrdma_dev_ring.o vmw/pvrdma_cmd.o \ > vmw/pvrdma_qp_ops.o vmw/pvrdma_main.o > -endif >