Re: arch/x86/include/asm/pgtable.h:888:2: error: implicit declaration of function 'native_pud_clear'

From: Fengguang Wu
Date: Mon Mar 13 2017 - 20:56:49 EST


Hi Dave,

On Mon, Mar 13, 2017 at 08:57:54AM -0700, Dave Jiang wrote:
Fengguang,
I don't believe Andrew has picked up this patch yet:
http://marc.info/?l=linux-mm&m=148883870428812&w=2

Unless you are seeing issues with that patch.

It looks the patch is not in mainline or linux-next yet:

% git show linus/master:arch/x86/include/asm/pgtable-3level.h |grep -C3 CONFIG_PARAVIRT
}

#if !defined(CONFIG_SMP) || (defined(CONFIG_HIGHMEM64G) && \
defined(CONFIG_PARAVIRT))
static inline void native_pud_clear(pud_t *pudp)
{
}

% git show linux-next/master:arch/x86/include/asm/pgtable-3level.h |grep -C3 CONFIG_PARAVIRT
}

#if !defined(CONFIG_SMP) || (defined(CONFIG_HIGHMEM64G) && \
defined(CONFIG_PARAVIRT))
static inline void native_pud_clear(pud_t *pudp)
{
}

Thanks,
Fengguang

On 03/11/2017 03:55 PM, kbuild test robot wrote:
Hi Matthew,

FYI, the error/warning still remains.

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 84c37c168c0e49a412d7021cda3183a72adac0d0
commit: a00cc7d9dd93d66a3fb83fc52aa57a4bec51c517 mm, x86: add support for PUD-sized transparent hugepages
date: 2 weeks ago
config: i386-randconfig-a0-201711 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
git checkout a00cc7d9dd93d66a3fb83fc52aa57a4bec51c517
# save the attached .config to linux build tree
make ARCH=i386

All errors (new ones prefixed by >>):

In file included from include/linux/mm.h:68:0,
from include/linux/suspend.h:8,
from arch/x86/kernel/asm-offsets.c:12:
arch/x86/include/asm/pgtable.h: In function 'native_local_pudp_get_and_clear':
arch/x86/include/asm/pgtable.h:888:2: error: implicit declaration of function 'native_pud_clear' [-Werror=implicit-function-declaration]
native_pud_clear(pudp);
^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [arch/x86/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 +/native_pud_clear +888 arch/x86/include/asm/pgtable.h

882 }
883
884 static inline pud_t native_local_pudp_get_and_clear(pud_t *pudp)
885 {
886 pud_t res = *pudp;
887
> 888 native_pud_clear(pudp);
889 return res;
890 }
891

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