iommu/arm-smmu-v3: Make the kunit into a module
authorJason Gunthorpe <jgg@nvidia.com>
Tue, 7 May 2024 13:21:10 +0000 (10:21 -0300)
committerJoerg Roedel <jroedel@suse.de>
Fri, 10 May 2024 12:14:14 +0000 (14:14 +0200)
commitda55da5a42d4247d7a48b843fa5fcd9a4a10f4fe
tree1f483b29cfdf630f8dc19fa82364a69c6defdfe7
parent278bd82c74d0346e30b78106500d7cd00aafa7f1
iommu/arm-smmu-v3: Make the kunit into a module

It turns out kconfig has problems ensuring the SMMU module and the KUNIT
module are consistently y/m to allow linking. It will permit KUNIT to be a
module while SMMU is built in.

Also, Fedora apparently enables kunit on production kernels.

So, put the entire kunit in its own module using the
VISIBLE_IF_KUNIT/EXPORT_SYMBOL_IF_KUNIT machinery. This keeps it out of
vmlinus on Fedora and makes the kconfig work in the normal way. There is
no cost if kunit is disabled.

Fixes: 56e1a4cc2588 ("iommu/arm-smmu-v3: Add unit tests for arm_smmu_write_entry")
Reported-by: Thorsten Leemhuis <linux@leemhuis.info>
Link: https://lore.kernel.org/all/aeea8546-5bce-4c51-b506-5d2008e52fef@leemhuis.info
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Tested-by: Thorsten Leemhuis <linux@leemhuis.info>
Acked-by: Will Deacon <will@kernel.org>
Link: https://lore.kernel.org/r/0-v1-24cba6c0f404+2ae-smmu_kunit_module_jgg@nvidia.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/Kconfig
drivers/iommu/arm/arm-smmu-v3/Makefile
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-sva.c
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3-test.c
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c