Message ID | 20190314143032.16870-3-pbonzini@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kconfig: add fine-grained dependencies for MSI | expand |
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 <pbonzini@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 >
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 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
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 <pbonzini@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