Hi Nicholas, [auto build test WARNING on asm-generic/master] [also build test WARNING on v4.8-rc7 next-20160920] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] [Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] [Check https://git-scm.com/docs/git-format-patch for more information] url: https://github.com/0day-ci/linux/commits/Nicholas-Piggin/percpu-improve-generic-percpu-modify-return-implementation/20160921-170016 base: https://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git master config: i386-randconfig-s0-201638 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): In file included from arch/x86/include/asm/percpu.h:551:0, from arch/x86/include/asm/preempt.h:5, from include/linux/preempt.h:59, from include/linux/spinlock.h:50, from arch/x86/kernel/nmi.c:13: arch/x86/kernel/nmi.c: In function 'do_nmi': include/asm-generic/percpu.h:138:17: warning: unused variable '__p' [-Wunused-variable] typeof(&(pcp)) __p = raw_cpu_ptr(&(pcp)); \ ^ include/asm-generic/percpu.h:378:41: note: in expansion of macro 'this_cpu_generic_add_return' #define this_cpu_add_return_8(pcp, val) this_cpu_generic_add_return(pcp, val) ^~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:326:24: note: in expansion of macro 'this_cpu_add_return_8' case 8: pscr2_ret__ = stem##8(variable, __VA_ARGS__); break; \ ^~~~ include/linux/percpu-defs.h:499:39: note: in expansion of macro '__pcpu_size_call_return2' #define this_cpu_add_return(pcp, val) __pcpu_size_call_return2(this_cpu_add_return_, pcp, val) ^~~~~~~~~~~~~~~~~~~~~~~~ include/linux/percpu-defs.h:511:34: note: in expansion of macro 'this_cpu_add_return' #define this_cpu_dec_return(pcp) this_cpu_add_return(pcp, -1) ^~~~~~~~~~~~~~~~~~~ >> arch/x86/kernel/nmi.c:544:6: note: in expansion of macro 'this_cpu_dec_return' if (this_cpu_dec_return(nmi_state)) ^~~~~~~~~~~~~~~~~~~ -- mm/vmstat.c: In function 'refresh_cpu_vm_stats': mm/vmstat.c:476:1: error: macro "raw_cpu_generic_xchg" requires 2 arguments, but only 1 given v = this_cpu_xchg(p->vm_stat_diff[i], 0); ^ ~~~~~~~~~~~~ In file included from arch/x86/include/asm/percpu.h:551:0, from arch/x86/include/asm/preempt.h:5, from include/linux/preempt.h:59, from include/linux/spinlock.h:50, from include/linux/wait.h:8, from include/linux/fs.h:5, from mm/vmstat.c:12: include/asm-generic/percpu.h:152:10: error: 'raw_cpu_generic_xchg' undeclared (first use in this function) __ret = raw_cpu_generic_xchg(pcp); \ ^ include/asm-generic/percpu.h:391:36: note: in expansion of macro 'this_cpu_generic_xchg' #define this_cpu_xchg_8(pcp, nval) this_cpu_generic_xchg(pcp, nval) ^~~~~~~~~~~~~~~~~~~~~ >> include/linux/percpu-defs.h:326:24: note: in expansion of macro 'this_cpu_xchg_8' case 8: pscr2_ret__ = stem##8(variable, __VA_ARGS__); break; \ ^~~~ include/linux/percpu-defs.h:500:34: note: in expansion of macro '__pcpu_size_call_return2' #define this_cpu_xchg(pcp, nval) __pcpu_size_call_return2(this_cpu_xchg_, pcp, nval) ^~~~~~~~~~~~~~~~~~~~~~~~ mm/vmstat.c:476:8: note: in expansion of macro 'this_cpu_xchg' v = this_cpu_xchg(p->vm_stat_diff[i], 0); ^~~~~~~~~~~~~ include/asm-generic/percpu.h:152:10: note: each undeclared identifier is reported only once for each function it appears in __ret = raw_cpu_generic_xchg(pcp); \ ^ include/asm-generic/percpu.h:391:36: note: in expansion of macro 'this_cpu_generic_xchg' #define this_cpu_xchg_8(pcp, nval) this_cpu_generic_xchg(pcp, nval) ^~~~~~~~~~~~~~~~~~~~~ >> include/linux/percpu-defs.h:326:24: note: in expansion of macro 'this_cpu_xchg_8' case 8: pscr2_ret__ = stem##8(variable, __VA_ARGS__); break; \ ^~~~ include/linux/percpu-defs.h:500:34: note: in expansion of macro '__pcpu_size_call_return2' #define this_cpu_xchg(pcp, nval) __pcpu_size_call_return2(this_cpu_xchg_, pcp, nval) ^~~~~~~~~~~~~~~~~~~~~~~~ mm/vmstat.c:476:8: note: in expansion of macro 'this_cpu_xchg' v = this_cpu_xchg(p->vm_stat_diff[i], 0); ^~~~~~~~~~~~~ vim +/this_cpu_dec_return +544 arch/x86/kernel/nmi.c 1d48922c Don Zickus 2011-09-30 528 inc_irq_stat(__nmi_count); 1d48922c Don Zickus 2011-09-30 529 1d48922c Don Zickus 2011-09-30 530 if (!ignore_nmis) 1d48922c Don Zickus 2011-09-30 531 default_do_nmi(regs); 1d48922c Don Zickus 2011-09-30 532 1d48922c Don Zickus 2011-09-30 533 nmi_exit(); 228bdaa9 Steven Rostedt 2011-12-09 534 9d050416 Andy Lutomirski 2015-07-15 535 #ifdef CONFIG_X86_64 9d050416 Andy Lutomirski 2015-07-15 536 if (unlikely(this_cpu_read(update_debug_stack))) { 9d050416 Andy Lutomirski 2015-07-15 537 debug_stack_reset(); 9d050416 Andy Lutomirski 2015-07-15 538 this_cpu_write(update_debug_stack, 0); 9d050416 Andy Lutomirski 2015-07-15 539 } 9d050416 Andy Lutomirski 2015-07-15 540 #endif 9d050416 Andy Lutomirski 2015-07-15 541 9d050416 Andy Lutomirski 2015-07-15 542 if (unlikely(this_cpu_read(nmi_cr2) != read_cr2())) 9d050416 Andy Lutomirski 2015-07-15 543 write_cr2(this_cpu_read(nmi_cr2)); 9d050416 Andy Lutomirski 2015-07-15 @544 if (this_cpu_dec_return(nmi_state)) 9d050416 Andy Lutomirski 2015-07-15 545 goto nmi_restart; 1d48922c Don Zickus 2011-09-30 546 } 9326638c Masami Hiramatsu 2014-04-17 547 NOKPROBE_SYMBOL(do_nmi); 1d48922c Don Zickus 2011-09-30 548 1d48922c Don Zickus 2011-09-30 549 void stop_nmi(void) 1d48922c Don Zickus 2011-09-30 550 { 1d48922c Don Zickus 2011-09-30 551 ignore_nmis++; 1d48922c Don Zickus 2011-09-30 552 } :::::: The code at line 544 was first introduced by commit :::::: 9d05041679904b12c12421cbcf9cb5f4860a8d7b x86/nmi: Enable nested do_nmi() handling for 64-bit kernels :::::: TO: Andy Lutomirski <luto@xxxxxxxxxx> :::::: CC: Ingo Molnar <mingo@xxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip