Re: [PATCH 2/2] iommufd_driver: make IOMMUFD_DRIVER_CORE a 'bool' symbol

From: Nicolin Chen
Date: Mon Mar 24 2025 - 18:38:42 EST


On Mon, Mar 24, 2025 at 10:03:23PM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> Calling iommufd_sw_msi() from iommu_dma_prepare_msi() in the iommu core
> code is no longer possible if the driver core is in a loadable module
> because it is now a direct call rather than a function pointer:
>
> arm-linux-gnueabi-ld: drivers/iommu/iommu.o: in function `iommu_dma_prepare_msi':
> iommu.c:(.text+0x4fb4): undefined reference to `iommufd_sw_msi'
>
> This effectively makes the iommu driver core part of the iommu subsystem
> itself, so disallow building it as a loadable module.
>
> Fixes: e009e088d88e ("iommu: Drop sw_msi from iommu_domain")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> drivers/iommu/iommufd/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iommu/iommufd/Kconfig b/drivers/iommu/iommufd/Kconfig
> index 0a07f9449fd9..2beeb4f60ee5 100644
> --- a/drivers/iommu/iommufd/Kconfig
> +++ b/drivers/iommu/iommufd/Kconfig
> @@ -1,6 +1,6 @@
> # SPDX-License-Identifier: GPL-2.0-only
> config IOMMUFD_DRIVER_CORE
> - tristate
> + bool

Hmm, looks like giving up this "tristate" is the only option as
IOMMU_API is now accessing iommufd_sw_msi() that itself and two
functions are kind of too big to be placed in a header.

Tested-by: Nicolin Chen <nicolinc@xxxxxxxxxx>

Thanks!