* [davidhildenbrand:rmap_batching 11/11] include/linux/pgtable.h:250:8: error: implicit declaration of function 'ptep_get_and_clear_full' is invalid in C99
@ 2024-01-20 3:04 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-01-20 3:04 UTC (permalink / raw)
To: David Hildenbrand; +Cc: llvm, oe-kbuild-all
tree: https://github.com/davidhildenbrand/linux rmap_batching
head: c54f3b69b7a799efa06dbf58a60db9b3fac04111
commit: c54f3b69b7a799efa06dbf58a60db9b3fac04111 [11/11] mm/memory: optimize unmap/zap with PTE-mapped THP
config: arm64-randconfig-004-20240120 (https://download.01.org/0day-ci/archive/20240120/202401201129.CtaytKvQ-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project.git f28c006a5895fc0e329fe15fead81e37457cb1d1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240120/202401201129.CtaytKvQ-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/202401201129.CtaytKvQ-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from arch/arm64/kernel/asm-offsets.c:12:
In file included from include/linux/ftrace.h:10:
In file included from include/linux/trace_recursion.h:5:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from arch/arm64/include/asm/hardirq.h:17:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/arm64/include/asm/io.h:12:
include/linux/pgtable.h:218:38: error: use of undeclared identifier 'PFN_PTE_SHIFT'
return __pte(pte_val(pte) + (1UL << PFN_PTE_SHIFT));
^
>> include/linux/pgtable.h:250:8: error: implicit declaration of function 'ptep_get_and_clear_full' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
pte = ptep_get_and_clear_full(mm, addr, ptep, full);
^
include/linux/pgtable.h:250:8: note: did you mean 'ptep_get_and_clear'?
arch/arm64/include/asm/pgtable.h:951:21: note: 'ptep_get_and_clear' declared here
static inline pte_t ptep_get_and_clear(struct mm_struct *mm,
^
In file included from arch/arm64/kernel/asm-offsets.c:12:
In file included from include/linux/ftrace.h:10:
In file included from include/linux/trace_recursion.h:5:
In file included from include/linux/interrupt.h:11:
In file included from include/linux/hardirq.h:11:
In file included from arch/arm64/include/asm/hardirq.h:17:
In file included from include/asm-generic/hardirq.h:17:
In file included from include/linux/irq.h:20:
In file included from include/linux/io.h:13:
In file included from arch/arm64/include/asm/io.h:12:
include/linux/pgtable.h:250:6: error: assigning to 'pte_t' from incompatible type 'int'
pte = ptep_get_and_clear_full(mm, addr, ptep, full);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/pgtable.h:257:11: error: assigning to 'pte_t' from incompatible type 'int'
tmp_pte = ptep_get_and_clear_full(mm, addr, ptep, full);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/pgtable.h:277:3: error: implicit declaration of function 'ptep_get_and_clear_full' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
ptep_get_and_clear_full(mm, addr, ptep, full);
^
include/linux/pgtable.h:617:21: error: static declaration of 'ptep_get_and_clear_full' follows non-static declaration
static inline pte_t ptep_get_and_clear_full(struct mm_struct *mm,
^
include/linux/pgtable.h:250:8: note: previous implicit declaration is here
pte = ptep_get_and_clear_full(mm, addr, ptep, full);
^
6 errors generated.
make[3]: *** [scripts/Makefile.build:116: arch/arm64/kernel/asm-offsets.s] Error 1 shuffle=2382276736
make[3]: Target 'prepare' not remade because of errors.
make[2]: *** [Makefile:1191: prepare0] Error 2 shuffle=2382276736
make[2]: Target 'prepare' not remade because of errors.
make[1]: *** [Makefile:234: __sub-make] Error 2 shuffle=2382276736
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:234: __sub-make] Error 2 shuffle=2382276736
make: Target 'prepare' not remade because of errors.
vim +/ptep_get_and_clear_full +250 include/linux/pgtable.h
235
236 #ifndef get_and_clear_full_ptes
237 /*
238 * Will merge accessed/dirty bits from all PTEs and merge them into
239 * the first folio.
240 *
241 * Will not merge writable bits: the returned PTE might be R/O while some
242 * PTE might have been writable.
243 */
244 static inline pte_t get_and_clear_full_ptes(struct mm_struct *mm,
245 unsigned long addr, pte_t *ptep, unsigned int nr, int full)
246 {
247 pte_t tmp_pte;
248 pte_t pte;
249
> 250 pte = ptep_get_and_clear_full(mm, addr, ptep, full);
251 if (--nr == 0)
252 return pte;
253 ptep++;
254 addr += PAGE_SIZE;
255
256 for (;;) {
257 tmp_pte = ptep_get_and_clear_full(mm, addr, ptep, full);
258 if (pte_dirty(tmp_pte))
259 pte = pte_mkdirty(pte);
260 if (pte_young(tmp_pte))
261 pte = pte_mkyoung(pte);
262 if (--nr == 0)
263 break;
264 ptep++;
265 addr += PAGE_SIZE;
266 }
267
268 return pte;
269 }
270 #endif
271
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-01-20 3:04 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-20 3:04 [davidhildenbrand:rmap_batching 11/11] include/linux/pgtable.h:250:8: error: implicit declaration of function 'ptep_get_and_clear_full' is invalid in C99 kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox