Re: [PATCH 1/3] powerpc/nohash: remove hash related code from nohash headers.

From: kbuild test robot
Date: Thu Apr 26 2018 - 16:28:34 EST


Hi Christophe,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on powerpc/next]
[also build test ERROR on v4.17-rc2 next-20180426]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Christophe-Leroy/powerpc-nohash-remove-hash-related-code-from-nohash-headers/20180425-182026
base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next
config: powerpc-ppc64e_defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=powerpc

All errors (new ones prefixed by >>):

In file included from arch/powerpc/include/asm/nohash/pgtable.h:6:0,
from arch/powerpc/include/asm/pgtable.h:19,
from include/linux/memremap.h:8,
from include/linux/mm.h:27,
from include/linux/mman.h:5,
from arch/powerpc/kernel/asm-offsets.c:22:
arch/powerpc/include/asm/nohash/64/pgtable.h: In function '__ptep_test_and_clear_young':
>> arch/powerpc/include/asm/nohash/64/pgtable.h:214:6: error: implicit declaration of function 'pte_young'; did you mean 'pte_pud'? [-Werror=implicit-function-declaration]
if (pte_young(*ptep))
^~~~~~~~~
pte_pud
In file included from arch/powerpc/include/asm/pgtable.h:19:0,
from include/linux/memremap.h:8,
from include/linux/mm.h:27,
from include/linux/mman.h:5,
from arch/powerpc/kernel/asm-offsets.c:22:
arch/powerpc/include/asm/nohash/pgtable.h: At top level:
>> arch/powerpc/include/asm/nohash/pgtable.h:20:19: error: static declaration of 'pte_young' follows non-static declaration
static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; }
^~~~~~~~~
In file included from arch/powerpc/include/asm/nohash/pgtable.h:6:0,
from arch/powerpc/include/asm/pgtable.h:19,
from include/linux/memremap.h:8,
from include/linux/mm.h:27,
from include/linux/mman.h:5,
from arch/powerpc/kernel/asm-offsets.c:22:
arch/powerpc/include/asm/nohash/64/pgtable.h:214:6: note: previous implicit declaration of 'pte_young' was here
if (pte_young(*ptep))
^~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [arch/powerpc/kernel/asm-offsets.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [sub-make] Error 2

vim +214 arch/powerpc/include/asm/nohash/64/pgtable.h

208
209 static inline int __ptep_test_and_clear_young(struct mm_struct *mm,
210 unsigned long addr, pte_t *ptep)
211 {
212 unsigned long old;
213
> 214 if (pte_young(*ptep))
215 return 0;
216 old = pte_update(mm, addr, ptep, _PAGE_ACCESSED, 0, 0);
217 return (old & _PAGE_ACCESSED) != 0;
218 }
219 #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG
220 #define ptep_test_and_clear_young(__vma, __addr, __ptep) \
221 ({ \
222 int __r; \
223 __r = __ptep_test_and_clear_young((__vma)->vm_mm, __addr, __ptep); \
224 __r; \
225 })
226

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip