Hi Nicholas, I love your patch! Yet something to improve: [auto build test ERROR on openrisc/for-next] [also build test ERROR on sparc-next/master sparc/master linus/master asm-generic/master v5.8-rc7 next-20200729] [cannot apply to nios2/for-linus xtensa/for_next] [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/Nicholas-Piggin/Use-asm-generic-for-mmu_context-no-op-functions/20200728-113854 base: https://github.com/openrisc/linux.git for-next config: m68k-randconfig-r005-20200729 (attached as .config) compiler: m68k-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=m68k If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): In file included from include/asm-generic/bug.h:5, from arch/m68k/include/asm/bug.h:32, from include/linux/bug.h:5, from include/linux/thread_info.h:12, from arch/m68k/include/asm/current.h:16, from include/linux/sched.h:12, from kernel//sched/sched.h:5, from kernel//sched/core.c:9: include/linux/scatterlist.h: In function 'sg_set_buf': arch/m68k/include/asm/page_no.h:33:50: warning: ordered comparison of pointer with null pointer [-Wextra] 33 | #define virt_addr_valid(kaddr) (((void *)(kaddr) >= (void *)PAGE_OFFSET) && \ | ^~ include/linux/compiler.h:78:42: note: in definition of macro 'unlikely' 78 | # define unlikely(x) __builtin_expect(!!(x), 0) | ^ include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON' 143 | BUG_ON(!virt_addr_valid(buf)); | ^~~~~~ include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid' 143 | BUG_ON(!virt_addr_valid(buf)); | ^~~~~~~~~~~~~~~ In file included from include/asm-generic/nommu_context.h:11, from arch/m68k/include/asm/mmu_context.h:304, from include/linux/mmu_context.h:5, from kernel//sched/sched.h:54, from kernel//sched/core.c:9: include/asm-generic/mmu_context.h: In function 'activate_mm': >> include/asm-generic/mmu_context.h:59:2: error: implicit declaration of function 'switch_mm' [-Werror=implicit-function-declaration] 59 | switch_mm(prev_mm, next_mm, current); | ^~~~~~~~~ In file included from arch/m68k/include/asm/mmu_context.h:304, from include/linux/mmu_context.h:5, from kernel//sched/sched.h:54, from kernel//sched/core.c:9: include/asm-generic/nommu_context.h: At top level: include/asm-generic/nommu_context.h:13:20: warning: conflicting types for 'switch_mm' 13 | static inline void switch_mm(struct mm_struct *prev, | ^~~~~~~~~ include/asm-generic/nommu_context.h:13:20: error: static declaration of 'switch_mm' follows non-static declaration In file included from include/asm-generic/nommu_context.h:11, from arch/m68k/include/asm/mmu_context.h:304, from include/linux/mmu_context.h:5, from kernel//sched/sched.h:54, from kernel//sched/core.c:9: include/asm-generic/mmu_context.h:59:2: note: previous implicit declaration of 'switch_mm' was here 59 | switch_mm(prev_mm, next_mm, current); | ^~~~~~~~~ kernel//sched/core.c: In function 'ttwu_stat': kernel//sched/core.c:2154:13: warning: variable 'rq' set but not used [-Wunused-but-set-variable] 2154 | struct rq *rq; | ^~ cc1: some warnings being treated as errors -- In file included from include/asm-generic/bug.h:5, from arch/m68k/include/asm/bug.h:32, from include/linux/bug.h:5, from include/linux/thread_info.h:12, from arch/m68k/include/asm/current.h:16, from include/linux/sched.h:12, from kernel//sched/sched.h:5, from kernel//sched/loadavg.c:9: include/linux/scatterlist.h: In function 'sg_set_buf': arch/m68k/include/asm/page_no.h:33:50: warning: ordered comparison of pointer with null pointer [-Wextra] 33 | #define virt_addr_valid(kaddr) (((void *)(kaddr) >= (void *)PAGE_OFFSET) && \ | ^~ include/linux/compiler.h:78:42: note: in definition of macro 'unlikely' 78 | # define unlikely(x) __builtin_expect(!!(x), 0) | ^ include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON' 143 | BUG_ON(!virt_addr_valid(buf)); | ^~~~~~ include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid' 143 | BUG_ON(!virt_addr_valid(buf)); | ^~~~~~~~~~~~~~~ In file included from include/asm-generic/nommu_context.h:11, from arch/m68k/include/asm/mmu_context.h:304, from include/linux/mmu_context.h:5, from kernel//sched/sched.h:54, from kernel//sched/loadavg.c:9: include/asm-generic/mmu_context.h: In function 'activate_mm': >> include/asm-generic/mmu_context.h:59:2: error: implicit declaration of function 'switch_mm' [-Werror=implicit-function-declaration] 59 | switch_mm(prev_mm, next_mm, current); | ^~~~~~~~~ In file included from arch/m68k/include/asm/mmu_context.h:304, from include/linux/mmu_context.h:5, from kernel//sched/sched.h:54, from kernel//sched/loadavg.c:9: include/asm-generic/nommu_context.h: At top level: include/asm-generic/nommu_context.h:13:20: warning: conflicting types for 'switch_mm' 13 | static inline void switch_mm(struct mm_struct *prev, | ^~~~~~~~~ include/asm-generic/nommu_context.h:13:20: error: static declaration of 'switch_mm' follows non-static declaration In file included from include/asm-generic/nommu_context.h:11, from arch/m68k/include/asm/mmu_context.h:304, from include/linux/mmu_context.h:5, from kernel//sched/sched.h:54, from kernel//sched/loadavg.c:9: include/asm-generic/mmu_context.h:59:2: note: previous implicit declaration of 'switch_mm' was here 59 | switch_mm(prev_mm, next_mm, current); | ^~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/asm-generic/bug.h:5, from arch/m68k/include/asm/bug.h:32, from include/linux/bug.h:5, from include/linux/thread_info.h:12, from arch/m68k/include/asm/current.h:16, from include/linux/sched.h:12, from kernel//sched/sched.h:5, from kernel//sched/rt.c:6: include/linux/scatterlist.h: In function 'sg_set_buf': arch/m68k/include/asm/page_no.h:33:50: warning: ordered comparison of pointer with null pointer [-Wextra] 33 | #define virt_addr_valid(kaddr) (((void *)(kaddr) >= (void *)PAGE_OFFSET) && \ | ^~ include/linux/compiler.h:78:42: note: in definition of macro 'unlikely' 78 | # define unlikely(x) __builtin_expect(!!(x), 0) | ^ include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON' 143 | BUG_ON(!virt_addr_valid(buf)); | ^~~~~~ include/linux/scatterlist.h:143:10: note: in expansion of macro 'virt_addr_valid' 143 | BUG_ON(!virt_addr_valid(buf)); | ^~~~~~~~~~~~~~~ In file included from include/asm-generic/nommu_context.h:11, from arch/m68k/include/asm/mmu_context.h:304, from include/linux/mmu_context.h:5, from kernel//sched/sched.h:54, from kernel//sched/rt.c:6: include/asm-generic/mmu_context.h: In function 'activate_mm': >> include/asm-generic/mmu_context.h:59:2: error: implicit declaration of function 'switch_mm' [-Werror=implicit-function-declaration] 59 | switch_mm(prev_mm, next_mm, current); | ^~~~~~~~~ In file included from arch/m68k/include/asm/mmu_context.h:304, from include/linux/mmu_context.h:5, from kernel//sched/sched.h:54, from kernel//sched/rt.c:6: include/asm-generic/nommu_context.h: At top level: include/asm-generic/nommu_context.h:13:20: warning: conflicting types for 'switch_mm' 13 | static inline void switch_mm(struct mm_struct *prev, | ^~~~~~~~~ include/asm-generic/nommu_context.h:13:20: error: static declaration of 'switch_mm' follows non-static declaration In file included from include/asm-generic/nommu_context.h:11, from arch/m68k/include/asm/mmu_context.h:304, from include/linux/mmu_context.h:5, from kernel//sched/sched.h:54, from kernel//sched/rt.c:6: include/asm-generic/mmu_context.h:59:2: note: previous implicit declaration of 'switch_mm' was here 59 | switch_mm(prev_mm, next_mm, current); | ^~~~~~~~~ kernel//sched/rt.c:668:6: warning: no previous prototype for 'sched_rt_bandwidth_account' [-Wmissing-prototypes] 668 | bool sched_rt_bandwidth_account(struct rt_rq *rt_rq) | ^~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/switch_mm +59 include/asm-generic/mmu_context.h 5c01b46bb6bb8f2 Arnd Bergmann 2009-05-13 49 49435c52fb90a3c Nicholas Piggin 2020-07-28 50 /** 49435c52fb90a3c Nicholas Piggin 2020-07-28 51 * activate_mm - called after exec switches the current task to a new mm, to switch to it 49435c52fb90a3c Nicholas Piggin 2020-07-28 52 * @prev_mm: previous mm of this task 49435c52fb90a3c Nicholas Piggin 2020-07-28 53 * @next_mm: new mm 49435c52fb90a3c Nicholas Piggin 2020-07-28 54 */ 49435c52fb90a3c Nicholas Piggin 2020-07-28 55 #ifndef activate_mm 49435c52fb90a3c Nicholas Piggin 2020-07-28 56 static inline void activate_mm(struct mm_struct *prev_mm, 49435c52fb90a3c Nicholas Piggin 2020-07-28 57 struct mm_struct *next_mm) 5c01b46bb6bb8f2 Arnd Bergmann 2009-05-13 58 { 49435c52fb90a3c Nicholas Piggin 2020-07-28 @59 switch_mm(prev_mm, next_mm, current); 5c01b46bb6bb8f2 Arnd Bergmann 2009-05-13 60 } 49435c52fb90a3c Nicholas Piggin 2020-07-28 61 #endif 5c01b46bb6bb8f2 Arnd Bergmann 2009-05-13 62 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org