Hi Geramy,

kernel test robot noticed the following build errors:

[auto build test ERROR on pci/next]
[also build test ERROR on pci/for-linus linus/master next-20260826]
[cannot apply to drm-misc/drm-misc-next v7.2]
[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/Geramy-Loveless/How-to-correctly-reserve-prefetchable-bridge-windows-for-large-resizable-BARs-behind-PCIe-switches-8x-GPU-PEX890xx-seeki/20260826-132218
base:   https://git.kernel.org/pub/scm/linux/kernel/git/pci/pci.git next
patch link:    
https://lore.kernel.org/r/a2292dfb-2ee5-4988-ac67-c75dd3e97a4c%40jqluv.com
patch subject: How to correctly reserve prefetchable bridge windows for large, 
resizable BARs behind PCIe switches (8x GPU, PEX890xx) - seeking guidance on 
upstreamable approach.
config: arm-randconfig-r072-20260827 
(https://download.01.org/0day-ci/archive/20260828/[email protected]/config)
compiler: arm-linux-gnueabi-gcc (GCC) 10.5.0
smatch: v0.5.0-9187-g5189e3fb
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20260828/[email protected]/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 <[email protected]>
| Closes: 
https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

   arm-linux-gnueabi-ld: drivers/pci/setup-res.o: in function 
`pcibios_align_resource':
>> drivers/pci/setup-res.c:289: undefined reference to `__aeabi_uldivmod'
>> arm-linux-gnueabi-ld: drivers/pci/setup-res.c:289: undefined reference to 
>> `__aeabi_uldivmod'
   arm-linux-gnueabi-ld: drivers/pci/setup-res.o: in function 
`pci_align_resource':
>> drivers/pci/setup-res.c:289: undefined reference to `__aeabi_uldivmod'
>> arm-linux-gnueabi-ld: drivers/pci/setup-res.c:289: undefined reference to 
>> `__aeabi_uldivmod'


vim +289 drivers/pci/setup-res.c

   262  
   263  /*
   264   * For mem bridge windows, try to relocate tail remainder space to space
   265   * before res->start if there's enough free space there. This enables
   266   * tighter packing for resources.
   267   */
   268  resource_size_t pci_align_resource(struct pci_dev *dev,
   269                                     const struct resource *res,
   270                                     const struct resource *empty_res,
   271                                     resource_size_t size,
   272                                     resource_size_t align)
   273  {
   274          resource_size_t remainder, start_addr;
   275  
   276          if (!(res->flags & IORESOURCE_MEM))
   277                  return res->start;
   278  
   279          if (IS_ALIGNED(size, align))
   280                  return res->start;
   281  
   282          remainder = size - ALIGN_DOWN(size, align);
   283          /*
   284           * A window holding several align-sized resources has one tail 
per
   285           * resource, but only the lowest can tuck below the first 
aligned
   286           * boundary; the rest sit above it. Relocate a single tail's 
worth.
   287           */
   288          if (ALIGN_DOWN(size, align) > align)
 > 289                  remainder /= ALIGN_DOWN(size, align) / align;
   290          /* Don't mess with size that doesn't align with window size 
granularity */
   291          if (!IS_ALIGNED(remainder, pci_min_window_alignment(dev->bus, 
res->flags)))
   292                  return res->start;
   293          /* Try to place remainder that doesn't fill align before */
   294          if (res->start < remainder)
   295                  return res->start;
   296          start_addr = res->start - remainder;
   297          if (empty_res->start > start_addr)
   298                  return res->start;
   299  
   300          pci_dbg(dev, "%pR: moving candidate start address below align 
to %llx\n",
   301                  res, (unsigned long long)start_addr);
   302          return start_addr;
   303  }
   304  

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

Reply via email to