Subject: [PATCH] [net-next] net: hns3: add IOMMU_SUPPORT dependency

From: Arnd Bergmann <[email-masked]>
Date: Mon, 4 Nov 2024 09:21:21 +0100

From: Arnd Bergmann <[email-masked]>

The hns3 driver started filling iommu_iotlb_gather structures itself,
which requires CONFIG_IOMMU_SUPPORT is enabled:

drivers/net/ethernet/hisilicon/hns3/hns3_enet.c: In function 'hns3_dma_map_sync':
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c:395:14: error: 'struct iommu_iotlb_gather' has no member named 'start'
  395 |  iotlb_gather.start = iova;
      |              ^
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c:396:14: error: 'struct iommu_iotlb_gather' has no member named 'end'
  396 |  iotlb_gather.end = iova + granule - 1;
      |              ^
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c:397:14: error: 'struct iommu_iotlb_gather' has no member named 'pgsize'
  397 |  iotlb_gather.pgsize = granule;
      |              ^

Add a Kconfig dependency to make it build in random configurations.

Cc: Will Deacon <[email-masked]>
Cc: Joerg Roedel <[email-masked]>
Cc: Robin Murphy <[email-masked]>
Cc: [email-masked]
Fixes: f2c14899caba ("net: hns3: add sync command to sync io-pgtable")
Signed-off-by: Arnd Bergmann <[email-masked]>
---
I noticed that no other driver does this, so it would be good to
have a confirmation from the iommu maintainers that this is how
the interface and the dependency is intended to be used.
---
 drivers/net/ethernet/hisilicon/Kconfig | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/hisilicon/Kconfig b/drivers/net/ethernet/hisilicon/Kconfig
index 65302c41bfb1..790efc8d2de6 100644
--- a/drivers/net/ethernet/hisilicon/Kconfig
+++ b/drivers/net/ethernet/hisilicon/Kconfig
@@ -91,6 +91,7 @@ config HNS_ENET
 config HNS3
 	tristate "Hisilicon Network Subsystem Support HNS3 (Framework)"
 	depends on PCI
+	depends on IOMMU_SUPPORT
 	select NET_DEVLINK
 	select PAGE_POOL
 	help
-- 
2.39.5