Hi Alex, On 6/2/23 23:33, Alex Williamson wrote: > It should be possible to select vfio-pci variant drivers without building > vfio-pci itself, which implies each variant driver should select > vfio-pci-core. > > Fix the top level vfio Makefile to traverse pci based on vfio-pci-core > rather than vfio-pci. > > Mark MMAP and INTX options depending on vfio-pci-core to cleanup resulting > config if core is not enabled. > > Push all PCI related vfio options to a sub-menu and make descriptions > consistent. > > Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> Reviewed-by: Eric Auger <eric.auger@xxxxxxxxxx> Eric > --- > drivers/vfio/Makefile | 2 +- > drivers/vfio/pci/Kconfig | 8 ++++++-- > drivers/vfio/pci/hisilicon/Kconfig | 4 ++-- > drivers/vfio/pci/mlx5/Kconfig | 2 +- > 4 files changed, 10 insertions(+), 6 deletions(-) > > diff --git a/drivers/vfio/Makefile b/drivers/vfio/Makefile > index 70e7dcb302ef..151e816b2ff9 100644 > --- a/drivers/vfio/Makefile > +++ b/drivers/vfio/Makefile > @@ -10,7 +10,7 @@ vfio-$(CONFIG_VFIO_VIRQFD) += virqfd.o > > obj-$(CONFIG_VFIO_IOMMU_TYPE1) += vfio_iommu_type1.o > obj-$(CONFIG_VFIO_IOMMU_SPAPR_TCE) += vfio_iommu_spapr_tce.o > -obj-$(CONFIG_VFIO_PCI) += pci/ > +obj-$(CONFIG_VFIO_PCI_CORE) += pci/ > obj-$(CONFIG_VFIO_PLATFORM) += platform/ > obj-$(CONFIG_VFIO_MDEV) += mdev/ > obj-$(CONFIG_VFIO_FSL_MC) += fsl-mc/ > diff --git a/drivers/vfio/pci/Kconfig b/drivers/vfio/pci/Kconfig > index f9d0c908e738..86bb7835cf3c 100644 > --- a/drivers/vfio/pci/Kconfig > +++ b/drivers/vfio/pci/Kconfig > @@ -1,5 +1,7 @@ > # SPDX-License-Identifier: GPL-2.0-only > -if PCI && MMU > +menu "VFIO support for PCI devices" > + depends on PCI && MMU > + > config VFIO_PCI_CORE > tristate > select VFIO_VIRQFD > @@ -7,9 +9,11 @@ config VFIO_PCI_CORE > > config VFIO_PCI_MMAP > def_bool y if !S390 > + depends on VFIO_PCI_CORE > > config VFIO_PCI_INTX > def_bool y if !S390 > + depends on VFIO_PCI_CORE > > config VFIO_PCI > tristate "Generic VFIO support for any PCI device" > @@ -59,4 +63,4 @@ source "drivers/vfio/pci/mlx5/Kconfig" > > source "drivers/vfio/pci/hisilicon/Kconfig" > > -endif > +endmenu > diff --git a/drivers/vfio/pci/hisilicon/Kconfig b/drivers/vfio/pci/hisilicon/Kconfig > index 5daa0f45d2f9..cbf1c32f6ebf 100644 > --- a/drivers/vfio/pci/hisilicon/Kconfig > +++ b/drivers/vfio/pci/hisilicon/Kconfig > @@ -1,13 +1,13 @@ > # SPDX-License-Identifier: GPL-2.0-only > config HISI_ACC_VFIO_PCI > - tristate "VFIO PCI support for HiSilicon ACC devices" > + tristate "VFIO support for HiSilicon ACC PCI devices" > depends on ARM64 || (COMPILE_TEST && 64BIT) > - depends on VFIO_PCI_CORE > depends on PCI_MSI > depends on CRYPTO_DEV_HISI_QM > depends on CRYPTO_DEV_HISI_HPRE > depends on CRYPTO_DEV_HISI_SEC2 > depends on CRYPTO_DEV_HISI_ZIP > + select VFIO_PCI_CORE > help > This provides generic PCI support for HiSilicon ACC devices > using the VFIO framework. > diff --git a/drivers/vfio/pci/mlx5/Kconfig b/drivers/vfio/pci/mlx5/Kconfig > index 29ba9c504a75..7088edc4fb28 100644 > --- a/drivers/vfio/pci/mlx5/Kconfig > +++ b/drivers/vfio/pci/mlx5/Kconfig > @@ -2,7 +2,7 @@ > config MLX5_VFIO_PCI > tristate "VFIO support for MLX5 PCI devices" > depends on MLX5_CORE > - depends on VFIO_PCI_CORE > + select VFIO_PCI_CORE > help > This provides migration support for MLX5 devices using the VFIO > framework.