tree:
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-5.4
head: de62e075613ad8d1b4979186b1962e3ae58156f2
commit: c13517e00945f874d87a7d9e140ea0f6c5384f9a [196/290] mm/memory.c: fix a huge pud
insertion race during faulting
config: um-randconfig-r015-20200517 (attached as .config)
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce:
git checkout c13517e00945f874d87a7d9e140ea0f6c5384f9a
# save the attached .config to linux build tree
make ARCH=um
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
In file included from include/asm-generic/bug.h:5:0,
from ./arch/um/include/generated/asm/bug.h:1,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from kernel/fork.c:16:
include/asm-generic/pgtable.h: In function
'pud_none_or_trans_huge_or_dev_or_clear_bad':
include/asm-generic/pgtable.h:920:52: error: implicit declaration of function
'pud_devmap'; did you mean 'pud_val'?
[-Werror=implicit-function-declaration]
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) :
__trace_if_value(cond))
^~~~
> include/asm-generic/pgtable.h:920:2: note: in expansion of macro
'if'
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^~
In file included from include/linux/dax.h:6:0,
from include/linux/mempolicy.h:11,
from kernel/fork.c:34:
include/linux/mm.h: At top level:
include/linux/mm.h:572:19: error: static declaration of 'pud_devmap' follows
non-static declaration
static inline int pud_devmap(pud_t pud)
^~~~~~~~~~
In file included from include/asm-generic/bug.h:5:0,
from ./arch/um/include/generated/asm/bug.h:1,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/gfp.h:5,
from include/linux/slab.h:15,
from kernel/fork.c:16:
include/asm-generic/pgtable.h:920:52: note: previous implicit declaration of
'pud_devmap' was here
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) :
__trace_if_value(cond))
^~~~
> include/asm-generic/pgtable.h:920:2: note: in expansion of macro
'if'
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^~
cc1: some warnings being treated as errors
--
In file included from include/linux/kernel.h:11:0,
from include/linux/list.h:9,
from include/linux/wait.h:7,
from include/linux/wait_bit.h:8,
from include/linux/fs.h:6,
from include/linux/proc_fs.h:9,
from kernel/cpu.c:6:
include/asm-generic/pgtable.h: In function
'pud_none_or_trans_huge_or_dev_or_clear_bad':
include/asm-generic/pgtable.h:920:52: error: implicit declaration of function
'pud_devmap'; did you mean 'put_device'?
[-Werror=implicit-function-declaration]
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) :
__trace_if_value(cond))
^~~~
> include/asm-generic/pgtable.h:920:2: note: in expansion of macro
'if'
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^~
In file included from include/linux/oom.h:11:0,
from kernel/cpu.c:17:
include/linux/mm.h: At top level:
include/linux/mm.h:572:19: error: static declaration of 'pud_devmap' follows
non-static declaration
static inline int pud_devmap(pud_t pud)
^~~~~~~~~~
In file included from include/linux/kernel.h:11:0,
from include/linux/list.h:9,
from include/linux/wait.h:7,
from include/linux/wait_bit.h:8,
from include/linux/fs.h:6,
from include/linux/proc_fs.h:9,
from kernel/cpu.c:6:
include/asm-generic/pgtable.h:920:52: note: previous implicit declaration of
'pud_devmap' was here
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) :
__trace_if_value(cond))
^~~~
> include/asm-generic/pgtable.h:920:2: note: in expansion of macro
'if'
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^~
cc1: some warnings being treated as errors
--
In file included from include/linux/string.h:6:0,
from include/linux/seq_file.h:6,
from kernel/bpf/btf.c:6:
include/asm-generic/pgtable.h: In function
'pud_none_or_trans_huge_or_dev_or_clear_bad':
include/asm-generic/pgtable.h:920:52: error: implicit declaration of function
'pud_devmap'; did you mean 'pud_val'?
[-Werror=implicit-function-declaration]
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) :
__trace_if_value(cond))
^~~~
> include/asm-generic/pgtable.h:920:2: note: in expansion of macro
'if'
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^~
In file included from include/linux/bvec.h:13:0,
from include/linux/skbuff.h:17,
from include/linux/filter.h:13,
from include/linux/bpf_verifier.h:8,
from kernel/bpf/btf.c:17:
include/linux/mm.h: At top level:
include/linux/mm.h:572:19: error: static declaration of 'pud_devmap' follows
non-static declaration
static inline int pud_devmap(pud_t pud)
^~~~~~~~~~
In file included from include/linux/string.h:6:0,
from include/linux/seq_file.h:6,
from kernel/bpf/btf.c:6:
include/asm-generic/pgtable.h:920:52: note: previous implicit declaration of
'pud_devmap' was here
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) :
__trace_if_value(cond))
^~~~
> include/asm-generic/pgtable.h:920:2: note: in expansion of macro
'if'
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^~
kernel/bpf/btf.c: In function 'btf_ctx_access':
kernel/bpf/btf.c:3446:24: error: 'struct bpf_prog_aux' has no member named
'attach_btf_id'
u32 btf_id = prog->aux->attach_btf_id;
^~
cc1: some warnings being treated as errors
--
In file included from include/linux/kernel.h:11:0,
from include/linux/list.h:9,
from include/linux/module.h:9,
from net/ieee802154/trace.c:1:
include/asm-generic/pgtable.h: In function
'pud_none_or_trans_huge_or_dev_or_clear_bad':
include/asm-generic/pgtable.h:920:52: error: implicit declaration of function
'pud_devmap'; did you mean 'pud_val'?
[-Werror=implicit-function-declaration]
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) :
__trace_if_value(cond))
^~~~
> include/asm-generic/pgtable.h:920:2: note: in expansion of macro
'if'
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^~
In file included from include/linux/bvec.h:13:0,
from include/linux/skbuff.h:17,
from include/linux/if_ether.h:19,
from include/uapi/linux/ethtool.h:19,
from include/linux/ethtool.h:18,
from include/linux/netdevice.h:37,
from include/net/cfg802154.h:13,
from net/ieee802154/trace.h:12,
from net/ieee802154/trace.c:5:
include/linux/mm.h: At top level:
include/linux/mm.h:572:19: error: static declaration of 'pud_devmap' follows
non-static declaration
static inline int pud_devmap(pud_t pud)
^~~~~~~~~~
In file included from include/linux/kernel.h:11:0,
from include/linux/list.h:9,
from include/linux/module.h:9,
from net/ieee802154/trace.c:1:
include/asm-generic/pgtable.h:920:52: note: previous implicit declaration of
'pud_devmap' was here
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^
include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
#define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) :
__trace_if_value(cond))
^~~~
> include/asm-generic/pgtable.h:920:2: note: in expansion of macro
'if'
if (pud_none(pudval) || pud_trans_huge(pudval) || pud_devmap(pudval))
^~
In file included from net/ieee802154/trace.h:319:0,
from net/ieee802154/trace.c:5:
include/trace/define_trace.h:95:42: fatal error: ./trace.h: No such file or directory
#include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
^
cc1: some warnings being treated as errors
compilation terminated.
vim +/if +920 include/asm-generic/pgtable.h
914
915 /* See pmd_none_or_trans_huge_or_clear_bad for discussion. */
916 static inline int pud_none_or_trans_huge_or_dev_or_clear_bad(pud_t *pud)
917 {
918 pud_t pudval = READ_ONCE(*pud);
919
920 if (pud_none(pudval) || pud_trans_huge(pudval) ||
pud_devmap(pudval))
921 return 1;
922 if (unlikely(pud_bad(pudval))) {
923 pud_clear_bad(pud);
924 return 1;
925 }
926 return 0;
927 }
928
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org