[PATCH v3 3/3] arm-smmu: select suitable MSI IOVA
kernel test robot
lkp at intel.com
Thu Aug 7 10:55:35 PDT 2025
Hi Shyam,
kernel test robot noticed the following build errors:
[auto build test ERROR on soc/for-next]
[also build test ERROR on linus/master v6.16 next-20250807]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Shyam-Saini/arm-smmu-move-MSI_IOVA-macro-definitions/20250807-055741
base: https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git for-next
patch link: https://lore.kernel.org/r/20250806215539.1240561-4-shyamsaini%40linux.microsoft.com
patch subject: [PATCH v3 3/3] arm-smmu: select suitable MSI IOVA
config: um-randconfig-r071-20250807 (https://download.01.org/0day-ci/archive/20250808/202508080104.M1bnmiMo-lkp@intel.com/config)
compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project 7b8dea265e72c3037b6b1e54d5ab51b7e14f328b)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250808/202508080104.M1bnmiMo-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202508080104.M1bnmiMo-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from drivers/iommu/arm/arm-smmu/arm-smmu.c:24:
In file included from include/linux/dma-mapping.h:8:
In file included from include/linux/scatterlist.h:9:
In file included from arch/um/include/asm/io.h:24:
include/asm-generic/io.h:1175:55: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
1175 | return (port > MMIO_UPPER_LIMIT) ? NULL : PCI_IOBASE + port;
| ~~~~~~~~~~ ^
drivers/iommu/arm/arm-smmu/arm-smmu.c:1602:35: error: use of undeclared identifier 'MSI_IOVA_BASE'
1602 | static const u64 msi_bases[] = { MSI_IOVA_BASE, MSI_IOVA_BASE2 };
| ^~~~~~~~~~~~~
>> drivers/iommu/arm/arm-smmu/arm-smmu.c:1602:50: error: use of undeclared identifier 'MSI_IOVA_BASE2'
1602 | static const u64 msi_bases[] = { MSI_IOVA_BASE, MSI_IOVA_BASE2 };
| ^~~~~~~~~~~~~~
>> drivers/iommu/arm/arm-smmu/arm-smmu.c:1610:23: error: invalid application of 'sizeof' to an incomplete type 'const u64[]' (aka 'const unsigned long long[]')
1610 | for (int i = 0; i != ARRAY_SIZE(msi_bases); i++) {
| ^~~~~~~~~~~~~~~~~~~~~
include/linux/array_size.h:11:32: note: expanded from macro 'ARRAY_SIZE'
11 | #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
| ^~~~~
drivers/iommu/arm/arm-smmu/arm-smmu.c:1613:44: error: use of undeclared identifier 'MSI_IOVA_LENGTH'
1613 | if (resv_region_intersects(msi_bases[i], MSI_IOVA_LENGTH, head))
| ^~~~~~~~~~~~~~~
drivers/iommu/arm/arm-smmu/arm-smmu.c:1616:50: error: use of undeclared identifier 'MSI_IOVA_LENGTH'
1616 | region = iommu_alloc_resv_region(msi_bases[i], MSI_IOVA_LENGTH, prot,
| ^~~~~~~~~~~~~~~
1 warning and 5 errors generated.
vim +/MSI_IOVA_BASE2 +1602 drivers/iommu/arm/arm-smmu/arm-smmu.c
1596
1597 static void arm_smmu_get_resv_regions(struct device *dev,
1598 struct list_head *head)
1599 {
1600 int prot = IOMMU_WRITE | IOMMU_NOEXEC | IOMMU_MMIO;
1601
> 1602 static const u64 msi_bases[] = { MSI_IOVA_BASE, MSI_IOVA_BASE2 };
1603
1604 iommu_dma_get_resv_regions(dev, head);
1605
1606 /*
1607 * Use the first msi_base that does not intersect with a platform
1608 * reserved region. The SW MSI base selection is entirely arbitrary.
1609 */
> 1610 for (int i = 0; i != ARRAY_SIZE(msi_bases); i++) {
1611 struct iommu_resv_region *region;
1612
1613 if (resv_region_intersects(msi_bases[i], MSI_IOVA_LENGTH, head))
1614 continue;
1615
1616 region = iommu_alloc_resv_region(msi_bases[i], MSI_IOVA_LENGTH, prot,
1617 IOMMU_RESV_SW_MSI, GFP_KERNEL);
1618 if (!region)
1619 return;
1620
1621 list_add_tail(®ion->list, head);
1622 return;
1623 }
1624 }
1625
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the linux-arm-kernel
mailing list