Re: [PATCH 1/2] dma-direct: Validate DMA mask against canonical DMA addresses

kernel test robot
2026-01-20T11:00:00Z

Hi Aneesh,

kernel test robot noticed the following build errors:

[auto build test ERROR on linus/master]
[also build test ERROR on v6.19-rc6 next-20260119]
[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/Aneesh-Kumar-K-V-Arm/dma-direct-Make-phys_to_dma-pick-encrypted-vs-unencrypted-per-device/20260120-145025
base: linus/master
patch link: https://lore.kernel.org/r/20260120064255.179425-1-aneesh.kumar%40kernel.org
patch subject: [PATCH 1/2] dma-direct: Validate DMA mask against canonical DMA addresses
config: powerpc-allnoconfig (https://download.01.org/0day-ci/archive/20260120/202601201822.0I4WAqVW-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260120/202601201822.0I4WAqVW-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601201822.0I4WAqVW-lkp@intel.com/

All errors (new ones prefixed by >>):

kernel/dma/direct.c: In function 'dma_direct_supported':
>> kernel/dma/direct.c:564:24: error: implicit declaration of function '__phys_to_dma'; did you mean 'phys_to_dma'? [-Wimplicit-function-declaration]
564 | return mask >= __phys_to_dma(dev, min_mask);
| ^~~~~~~~~~~~~
| phys_to_dma

vim +564 kernel/dma/direct.c

543
544 int dma_direct_supported(struct device *dev, u64 mask)
545 {
546 u64 min_mask = (max_pfn - 1) << PAGE_SHIFT;
547
548 /*
549 * Because 32-bit DMA masks are so common we expect every architecture
550 * to be able to satisfy them - either by not supporting more physical
551 * memory, or by providing a ZONE_DMA32. If neither is the case, the
552 * architecture needs to use an IOMMU instead of the direct mapping.
553 */
554 if (mask >= DMA_BIT_MASK(32))
555 return 1;
556
557 /*
558 * This check needs to be against the actual bit mask value, so use
559 * __phys_to_dma() here so that the arch specific encryption mask isn't
560 * part of the check.
561 */
562 if (IS_ENABLED(CONFIG_ZONE_DMA))
563 min_mask = min_t(u64, min_mask, zone_dma_limit);
> 564 return mask >= __phys_to_dma(dev, min_mask);
565 }
566

--
0-DAY CI Kernel Test Service