== Series Details == Series: Supporting GMEM (generalized memory management) for external memory devices URL : https://patchwork.freedesktop.org/series/126986/ State : failure == Summary == Error: make failed CALL scripts/checksyscalls.sh DESCEND objtool INSTALL libsubcmd_headers CC mm/gmem.o In file included from ./include/linux/kernel.h:23, from ./arch/x86/include/asm/percpu.h:27, from ./arch/x86/include/asm/preempt.h:6, from ./include/linux/preempt.h:79, from ./include/linux/spinlock.h:56, from ./include/linux/mmzone.h:8, from ./include/linux/gfp.h:7, from ./include/linux/mm.h:7, from mm/gmem.c:9: mm/gmem.c: In function ‘is_hnode_allowed’: mm/gmem.c:43:51: error: ‘struct task_struct’ has no member named ‘mems_allowed’ 43 | return is_hnode(node) && node_isset(node, current->mems_allowed); | ^~ ./include/linux/bitops.h:50:37: note: in definition of macro ‘bitop’ 50 | __builtin_constant_p((uintptr_t)(addr) != (uintptr_t)NULL) && \ | ^~~~ ./include/linux/nodemask.h:153:36: note: in expansion of macro ‘test_bit’ 153 | #define node_isset(node, nodemask) test_bit((node), (nodemask).bits) | ^~~~~~~~ mm/gmem.c:43:27: note: in expansion of macro ‘node_isset’ 43 | return is_hnode(node) && node_isset(node, current->mems_allowed); | ^~~~~~~~~~ mm/gmem.c:43:51: error: ‘struct task_struct’ has no member named ‘mems_allowed’ 43 | return is_hnode(node) && node_isset(node, current->mems_allowed); | ^~ ./include/linux/bitops.h:51:16: note: in definition of macro ‘bitop’ 51 | (uintptr_t)(addr) != (uintptr_t)NULL && \ | ^~~~ ./include/linux/nodemask.h:153:36: note: in expansion of macro ‘test_bit’ 153 | #define node_isset(node, nodemask) test_bit((node), (nodemask).bits) | ^~~~~~~~ mm/gmem.c:43:27: note: in expansion of macro ‘node_isset’ 43 | return is_hnode(node) && node_isset(node, current->mems_allowed); | ^~~~~~~~~~ mm/gmem.c:43:51: error: ‘struct task_struct’ has no member named ‘mems_allowed’ 43 | return is_hnode(node) && node_isset(node, current->mems_allowed); | ^~ ./include/linux/bitops.h:52:50: note: in definition of macro ‘bitop’ 52 | __builtin_constant_p(*(const unsigned long *)(addr))) ? \ | ^~~~ ./include/linux/nodemask.h:153:36: note: in expansion of macro ‘test_bit’ 153 | #define node_isset(node, nodemask) test_bit((node), (nodemask).bits) | ^~~~~~~~ mm/gmem.c:43:27: note: in expansion of macro ‘node_isset’ 43 | return is_hnode(node) && node_isset(node, current->mems_allowed); | ^~~~~~~~~~ mm/gmem.c:43:51: error: ‘struct task_struct’ has no member named ‘mems_allowed’ 43 | return is_hnode(node) && node_isset(node, current->mems_allowed); | ^~ ./include/linux/bitops.h:53:17: note: in definition of macro ‘bitop’ 53 | const##op(nr, addr) : op(nr, addr)) | ^~~~ ./include/linux/nodemask.h:153:36: note: in expansion of macro ‘test_bit’ 153 | #define node_isset(node, nodemask) test_bit((node), (nodemask).bits) | ^~~~~~~~ mm/gmem.c:43:27: note: in expansion of macro ‘node_isset’ 43 | return is_hnode(node) && node_isset(node, current->mems_allowed); | ^~~~~~~~~~ mm/gmem.c:43:51: error: ‘struct task_struct’ has no member named ‘mems_allowed’ 43 | return is_hnode(node) && node_isset(node, current->mems_allowed); | ^~ ./include/linux/bitops.h:53:32: note: in definition of macro ‘bitop’ 53 | const##op(nr, addr) : op(nr, addr)) | ^~~~ ./include/linux/nodemask.h:153:36: note: in expansion of macro ‘test_bit’ 153 | #define node_isset(node, nodemask) test_bit((node), (nodemask).bits) | ^~~~~~~~ mm/gmem.c:43:27: note: in expansion of macro ‘node_isset’ 43 | return is_hnode(node) && node_isset(node, current->mems_allowed); | ^~~~~~~~~~ mm/gmem.c: At top level: mm/gmem.c:401:6: warning: no previous prototype for ‘gm_dev_unregister_physmem’ [-Wmissing-prototypes] 401 | void gm_dev_unregister_physmem(struct gm_dev *dev, unsigned int nid) | ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ./include/linux/mmzone.h:18, from ./include/linux/gfp.h:7, from ./include/linux/mm.h:7, from mm/gmem.c:9: mm/gmem.c: In function ‘gm_as_attach’: mm/gmem.c:485:24: error: ‘struct task_struct’ has no member named ‘mems_allowed’ 485 | node_set(nid, current->mems_allowed); | ^~ ./include/linux/nodemask.h:128:50: note: in definition of macro ‘node_set’ 128 | #define node_set(node, dst) __node_set((node), &(dst)) | ^~~ mm/gmem.c: In function ‘hmadvise_do_eagerfree’: mm/gmem.c:664:16: warning: variable ‘old_start’ set but not used [-Wunused-but-set-variable] 664 | unsigned long old_start; | ^~~~~~~~~ mm/gmem.c: In function ‘setup_gmem’: mm/gmem.c:149:8: warning: ignoring return value of ‘kstrtobool’, declared with attribute warn_unused_result [-Wunused-result] 149 | (void)kstrtobool(str, &enable_gmem); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/gmem.c: In function ‘is_hnode_allowed’: mm/gmem.c:44:1: error: control reaches end of non-void function [-Werror=return-type] 44 | } | ^ cc1: some warnings being treated as errors make[3]: *** [scripts/Makefile.build:243: mm/gmem.o] Error 1 make[2]: *** [scripts/Makefile.build:480: mm] Error 2 make[1]: *** [/home/kbuild2/kernel/Makefile:1911: .] Error 2 make: *** [Makefile:234: __sub-make] Error 2 Build failed, no error log produced