Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

vfio: Fix build break when SPAPR_TCE_IOMMU=n

Currently the kconfig logic for VFIO_IOMMU_SPAPR_TCE and VFIO_SPAPR_EEH
is broken when SPAPR_TCE_IOMMU=n. Leading to:

warning: (VFIO) selects VFIO_IOMMU_SPAPR_TCE which has unmet direct dependencies (VFIO && SPAPR_TCE_IOMMU)
warning: (VFIO) selects VFIO_IOMMU_SPAPR_TCE which has unmet direct dependencies (VFIO && SPAPR_TCE_IOMMU)
drivers/vfio/vfio_iommu_spapr_tce.c:113:8: error: implicit declaration of function 'mm_iommu_find'

This stems from the fact that VFIO selects VFIO_IOMMU_SPAPR_TCE, and
although it has an if clause, the condition is not correct.

We could fix it by doing select VFIO_IOMMU_SPAPR_TCE if SPAPR_TCE_IOMMU,
but the cleaner fix is to drop the selects and tie VFIO_IOMMU_SPAPR_TCE
to the value of VFIO, and express the dependencies in only once place.

Do the same for VFIO_SPAPR_EEH.

The end result is that the values of VFIO_IOMMU_SPAPR_TCE and
VFIO_SPAPR_EEH follow the value of VFIO, except when SPAPR_TCE_IOMMU=n
and/or EEH=n. Which is exactly what we want to happen.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>

authored by

Michael Ellerman and committed by
Alex Williamson
d88423f7 d5adbfcd

+2 -4
+2 -4
drivers/vfio/Kconfig
··· 6 6 config VFIO_IOMMU_SPAPR_TCE 7 7 tristate 8 8 depends on VFIO && SPAPR_TCE_IOMMU 9 - default n 9 + default VFIO 10 10 11 11 config VFIO_SPAPR_EEH 12 12 tristate 13 13 depends on EEH && VFIO_IOMMU_SPAPR_TCE 14 - default n 14 + default VFIO 15 15 16 16 config VFIO_VIRQFD 17 17 tristate ··· 22 22 tristate "VFIO Non-Privileged userspace driver framework" 23 23 depends on IOMMU_API 24 24 select VFIO_IOMMU_TYPE1 if (X86 || S390 || ARM_SMMU || ARM_SMMU_V3) 25 - select VFIO_IOMMU_SPAPR_TCE if (PPC_POWERNV || PPC_PSERIES) 26 - select VFIO_SPAPR_EEH if (PPC_POWERNV || PPC_PSERIES) 27 25 select ANON_INODES 28 26 help 29 27 VFIO provides a framework for secure userspace device drivers.