[asahilinux:dart/t6000 5/5] drivers/iommu/io-pgtable-arm.c:180:10: error: implicit declaration of function 'FIELD_PREP'
From: kernel test robot
Date: Mon Nov 01 2021 - 20:56:22 EST
tree: https://github.com/AsahiLinux/linux dart/t6000
head: 1dad0d5a8322c5c6edc88ad0cc0d6ec98bda766d
commit: 1dad0d5a8322c5c6edc88ad0cc0d6ec98bda766d [5/5] iommu/io-pgtable: Add APPLE_DART support for the T6000 variant
config: arm-randconfig-r011-20211101 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 264d3b6d4e08401c5b50a85bd76e80b3461d77e6)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/AsahiLinux/linux/commit/1dad0d5a8322c5c6edc88ad0cc0d6ec98bda766d
git remote add asahilinux https://github.com/AsahiLinux/linux
git fetch --no-tags asahilinux dart/t6000
git checkout 1dad0d5a8322c5c6edc88ad0cc0d6ec98bda766d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All errors (new ones prefixed by >>):
>> drivers/iommu/io-pgtable-arm.c:180:10: error: implicit declaration of function 'FIELD_PREP' [-Werror,-Wimplicit-function-declaration]
pte = FIELD_PREP(APPLE_DART_T6000_PTE_ADDR_MASK, paddr);
^
>> drivers/iommu/io-pgtable-arm.c:200:12: error: implicit declaration of function 'FIELD_GET' [-Werror,-Wimplicit-function-declaration]
paddr = FIELD_GET(APPLE_DART_T6000_PTE_ADDR_MASK, paddr);
^
2 errors generated.
vim +/FIELD_PREP +180 drivers/iommu/io-pgtable-arm.c
170
171 static arm_lpae_iopte paddr_to_iopte(phys_addr_t paddr,
172 struct arm_lpae_io_pgtable *data)
173 {
174 arm_lpae_iopte pte = paddr;
175
176 if (data->iop.fmt == APPLE_DART) {
177 paddr >>= APPLE_DART_PADDR_SHIFT;
178
179 if (data->iop.cfg.oas > 40)
> 180 pte = FIELD_PREP(APPLE_DART_T6000_PTE_ADDR_MASK, paddr);
181 else
182 pte = FIELD_PREP(APPLE_DART_T8103_PTE_ADDR_MASK, paddr);
183
184 pte |= FIELD_PREP(APPLE_DART_PTE_SUBPAGE_START, 0);
185 pte |= FIELD_PREP(APPLE_DART_PTE_SUBPAGE_END, 0xfff);
186 return pte;
187 }
188
189 /* Of the bits which overlap, either 51:48 or 15:12 are always RES0 */
190 return (pte | (pte >> (48 - 12))) & ARM_LPAE_PTE_ADDR_MASK;
191 }
192
193 static phys_addr_t iopte_to_paddr(arm_lpae_iopte pte,
194 struct arm_lpae_io_pgtable *data)
195 {
196 u64 paddr = pte & ARM_LPAE_PTE_ADDR_MASK;
197
198 if (data->iop.fmt == APPLE_DART) {
199 if (data->iop.cfg.oas > 40)
> 200 paddr = FIELD_GET(APPLE_DART_T6000_PTE_ADDR_MASK, paddr);
201 else
202 paddr = FIELD_GET(APPLE_DART_T8103_PTE_ADDR_MASK, paddr);
203
204 return paddr << APPLE_DART_PADDR_SHIFT;
205 }
206
207 if (ARM_LPAE_GRANULE(data) < SZ_64K)
208 return paddr;
209
210 /* Rotate the packed high-order bits back to the top */
211 return (paddr | (paddr << (48 - 12))) & (ARM_LPAE_PTE_ADDR_MASK << 4);
212 }
213
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip