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-...@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-...@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 <l...@intel.com>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202508080104.m1bnmimo-...@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(&region->list, head);
  1622                  return;
  1623          }
  1624  }
  1625  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Reply via email to