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
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
--
2.20.1
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
>
© 2016 - 2026 Red Hat, Inc.