drivers/iommu/bcm2712-iommu.c:151:24: error: implicit declaration of function 'FIELD_GET'

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.oe-kbuild
Message-ID <[email protected]>
:::::: 
:::::: Manual check reason: "bisect to a FBC not belonging to original linux-review patches: branch: linux-review/Daniel-Drake/generic_pt-allow-missing-sw-bit-in-DMA_INCOHERENT-case/20260728-104924, commit: 0ee3a30c51b6df9d40444e59dde79947e9be7e09"
:::::: 

BCC: [email protected]
CC: [email protected]
TO: Daniel Drake <[email protected]>
CC: 0day robot <[email protected]>

tree:   https://github.com/intel-lab-lkp/linux/commits/Daniel-Drake/generic_pt-allow-missing-sw-bit-in-DMA_INCOHERENT-case/20260728-104924
head:   dfd34af1fe7ce4108ac5744c4953720d46fad45e
commit: 0ee3a30c51b6df9d40444e59dde79947e9be7e09 iommu: Add Broadcom BCM2712 IOMMU driver
date:   7 days ago
:::::: branch date: 7 days ago
:::::: commit date: 7 days ago
config: nios2-allmodconfig (https://download.01.org/0day-ci/archive/20260804/[email protected]/config)
compiler: nios2-linux-gcc (GCC) 11.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260804/[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/r/[email protected]/

All error/warnings (new ones prefixed by >>):

   drivers/iommu/bcm2712-iommu.c: In function 'bcm2712_iommu_init':
>> drivers/iommu/bcm2712-iommu.c:151:24: error: implicit declaration of function 'FIELD_GET' [-Werror=implicit-function-declaration]
     151 |         u32 pa_width = FIELD_GET(MMMU_DEBUG_INFO_PA_WIDTH_MASK, u);
         |                        ^~~~~~~~~
   In file included from drivers/iommu/bcm2712-iommu.c:42:
   drivers/iommu/bcm2712-iommu.c: In function 'bcm2712_iommu_domain_alloc':
>> drivers/iommu/bcm2712-iommu.h:18:34: warning: conversion from 'long long unsigned int' to 'dma_addr_t' {aka 'unsigned int'} changes value from '42949672960' to '0' [-Woverflow]
      18 | #define BCM2712_APERTURE_BASE    (40ULL << 30)
         |                                  ^
   drivers/iommu/bcm2712-iommu.c:437:48: note: in expansion of macro 'BCM2712_APERTURE_BASE'
     437 |         domain->base.geometry.aperture_start = BCM2712_APERTURE_BASE;
         |                                                ^~~~~~~~~~~~~~~~~~~~~
   drivers/iommu/bcm2712-iommu.h:20:34: warning: conversion from 'long long unsigned int' to 'dma_addr_t' {aka 'unsigned int'} changes value from '47244640255' to '4294967295' [-Woverflow]
      20 | #define BCM2712_APERTURE_END     (BCM2712_APERTURE_BASE + BCM2712_APERTURE_SIZE)
         |                                  ^
   drivers/iommu/bcm2712-iommu.c:438:46: note: in expansion of macro 'BCM2712_APERTURE_END'
     438 |         domain->base.geometry.aperture_end = BCM2712_APERTURE_END - 1;
         |                                              ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/FIELD_GET +151 drivers/iommu/bcm2712-iommu.c

0ee3a30c51b6df Daniel Drake 2026-07-27  146  
0ee3a30c51b6df Daniel Drake 2026-07-27  147  static void bcm2712_iommu_init(struct bcm2712_iommu *mmu)
0ee3a30c51b6df Daniel Drake 2026-07-27  148  {
0ee3a30c51b6df Daniel Drake 2026-07-27  149  	unsigned int bigpage_width, superpage_width;
0ee3a30c51b6df Daniel Drake 2026-07-27  150  	u32 u = MMU_RD(MMMU_DEBUG_INFO_OFFSET);
0ee3a30c51b6df Daniel Drake 2026-07-27 @151  	u32 pa_width = FIELD_GET(MMMU_DEBUG_INFO_PA_WIDTH_MASK, u);
0ee3a30c51b6df Daniel Drake 2026-07-27  152  
0ee3a30c51b6df Daniel Drake 2026-07-27  153  	dev_dbg(mmu->dev, "DEBUG_INFO = 0x%08x\n", u);
0ee3a30c51b6df Daniel Drake 2026-07-27  154  	WARN_ON(FIELD_GET(MMMU_DEBUG_INFO_VERSION_MASK, u) < 4 ||
0ee3a30c51b6df Daniel Drake 2026-07-27  155  		FIELD_GET(MMMU_DEBUG_INFO_VA_WIDTH_MASK, u) < 6 ||
0ee3a30c51b6df Daniel Drake 2026-07-27  156  		pa_width < 6 || !(u & MMMU_DEBUG_INFO_BYPASS));
0ee3a30c51b6df Daniel Drake 2026-07-27  157  
0ee3a30c51b6df Daniel Drake 2026-07-27  158  	dma_set_mask_and_coherent(mmu->dev, DMA_BIT_MASK(pa_width + 30u));
0ee3a30c51b6df Daniel Drake 2026-07-27  159  
0ee3a30c51b6df Daniel Drake 2026-07-27  160  	bigpage_width = FIELD_GET(MMMU_DEBUG_INFO_BIGPAGE_WIDTH_MASK, u);
0ee3a30c51b6df Daniel Drake 2026-07-27  161  	if (bigpage_width)
0ee3a30c51b6df Daniel Drake 2026-07-27  162  		mmu->bigpage_size = IOMMU_PAGE_SIZE << bigpage_width;
0ee3a30c51b6df Daniel Drake 2026-07-27  163  
0ee3a30c51b6df Daniel Drake 2026-07-27  164  	superpage_width = FIELD_GET(MMMU_DEBUG_INFO_SUPERPAGE_WIDTH_MASK, u);
0ee3a30c51b6df Daniel Drake 2026-07-27  165  	if (superpage_width)
0ee3a30c51b6df Daniel Drake 2026-07-27  166  		mmu->superpage_size = IOMMU_PAGE_SIZE << superpage_width;
0ee3a30c51b6df Daniel Drake 2026-07-27  167  
0ee3a30c51b6df Daniel Drake 2026-07-27  168  	/* Disable MMU and clear sticky flags; meanwhile flush the TLB */
0ee3a30c51b6df Daniel Drake 2026-07-27  169  	MMU_WR(MMMU_CTRL_OFFSET, MMMU_CTRL_CAP_EXCEEDED | MMMU_CTRL_PT_INVALID |
0ee3a30c51b6df Daniel Drake 2026-07-27  170  					 MMMU_CTRL_WRITE_VIOLATION |
0ee3a30c51b6df Daniel Drake 2026-07-27  171  					 MMMU_CTRL_STATS_CLEAR |
0ee3a30c51b6df Daniel Drake 2026-07-27  172  					 MMMU_CTRL_TLB_CLEAR);
0ee3a30c51b6df Daniel Drake 2026-07-27  173  
0ee3a30c51b6df Daniel Drake 2026-07-27  174  	/* Put MMU into 2-level mode */
0ee3a30c51b6df Daniel Drake 2026-07-27  175  	MMU_WR(MMMU_MISC_OFFSET,
0ee3a30c51b6df Daniel Drake 2026-07-27  176  	       MMU_RD(MMMU_MISC_OFFSET) & ~MMMU_MISC_SINGLE_TABLE);
0ee3a30c51b6df Daniel Drake 2026-07-27  177  }
0ee3a30c51b6df Daniel Drake 2026-07-27  178  

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.