vfio: Fix build break when SPAPR_TCE_IOMMU=n
authorMichael Ellerman <mpe@ellerman.id.au>
Wed, 8 Feb 2017 20:13:25 +0000 (13:13 -0700)
committerAlex Williamson <alex.williamson@redhat.com>
Wed, 8 Feb 2017 20:13:25 +0000 (13:13 -0700)
commitd88423f7844ea9941d55bde92716a50c3e131dd7
tree666e0ca2a0122e6be7c41fa2def07b801364c919
parentd5adbfcd5f7bcc6fa58a41c5c5ada0e5c826ce2c
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>
drivers/vfio/Kconfig