Hi Wei,
I love your patch! Yet something to improve:
[auto build test ERROR on arm64/for-next/core]
[also build test ERROR on v5.8-rc6 next-20200721]
[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]
url:
https://github.com/0day-ci/linux/commits/Wei-Li/arm64-mm-free-unused-memm...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from arch/arm64/include/asm/kernel-pgtable.h:11,
from arch/arm64/include/asm/uaccess.h:11,
from include/linux/uaccess.h:11,
from include/linux/sched/task.h:11,
from include/linux/sched/signal.h:9,
from include/linux/rcuwait.h:6,
from include/linux/percpu-rwsem.h:7,
from include/linux/fs.h:33,
from include/linux/cgroup.h:17,
from include/linux/memcontrol.h:13,
from include/linux/swap.h:9,
from arch/arm64/mm/init.c:12:
arch/arm64/mm/init.c: In function 'free_memmap':
> include/linux/pgtable.h:113:34: error: passing argument 1 of
'pud_offset' from incompatible pointer type [-Werror=incompatible-pointer-types]
113 | #define pgd_offset(mm, address) pgd_offset_pgd((mm)->pgd, (address))
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| pgd_t * {aka struct <anonymous> *}
include/linux/pgtable.h:120:32: note: in expansion of macro 'pgd_offset'
120 | #define pgd_offset_k(address) pgd_offset(&init_mm, (address))
| ^~~~~~~~~~
arch/arm64/mm/init.c:457:30: note: in expansion of macro 'pgd_offset_k'
457 | pmd = pmd_offset(pud_offset(pgd_offset_k(addr), addr), addr);
| ^~~~~~~~~~~~
In file included from arch/arm64/include/asm/pgtable-types.h:50,
from arch/arm64/include/asm/kasan.h:9,
from arch/arm64/include/asm/processor.h:36,
from include/asm-generic/qrwlock.h:14,
from ./arch/arm64/include/generated/asm/qrwlock.h:1,
from arch/arm64/include/asm/spinlock.h:8,
from include/linux/spinlock.h:89,
from include/linux/swap.h:5,
from arch/arm64/mm/init.c:12:
include/asm-generic/pgtable-nopud.h:42:40: note: expected 'p4d_t *' {aka
'struct <anonymous> *'} but argument is of type 'pgd_t *' {aka
'struct <anonymous> *'}
42 | static inline pud_t *pud_offset(p4d_t *p4d, unsigned long address)
| ~~~~~~~^~~
> arch/arm64/mm/init.c:467:4: error: implicit declaration of
function 'free_bootmem'; did you mean 'free_initmem'?
[-Werror=implicit-function-declaration]
467 | free_bootmem(phys_addr,
PMD_SIZE);
| ^~~~~~~~~~~~
| free_initmem
cc1: some warnings being treated as errors
vim +/pud_offset +113 include/linux/pgtable.h
974b9b2c68f3d3 Mike Rapoport 2020-06-08 108
974b9b2c68f3d3 Mike Rapoport 2020-06-08 109 /*
974b9b2c68f3d3 Mike Rapoport 2020-06-08 110 * a shortcut to get a pgd_t in a given mm
974b9b2c68f3d3 Mike Rapoport 2020-06-08 111 */
974b9b2c68f3d3 Mike Rapoport 2020-06-08 112 #ifndef pgd_offset
974b9b2c68f3d3 Mike Rapoport 2020-06-08 @113 #define pgd_offset(mm,
address) pgd_offset_pgd((mm)->pgd, (address))
974b9b2c68f3d3 Mike Rapoport 2020-06-08 114 #endif
974b9b2c68f3d3 Mike Rapoport 2020-06-08 115
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org