Message ID | 20180316110224.12260-2-malat@debian.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | Start using __printf attribute (single commit series) | expand |
Hi Mathieu, Thank you for the patch! Yet something to improve: [auto build test ERROR on v4.16-rc4] [also build test ERROR on next-20180316] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Mathieu-Malaterre/Start-using-__printf-attribute-single-commit-series/20180318-035038 config: powerpc64-defconfig (attached as .config) compiler: powerpc64-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: 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 make.cross ARCH=powerpc64 Note: the linux-review/Mathieu-Malaterre/Start-using-__printf-attribute-single-commit-series/20180318-035038 HEAD 070c2d653f1924feb0363271515fea85920b80f9 builds fine. It only hurts bisectibility. All error/warnings (new ones prefixed by >>): arch/powerpc/xmon/xmon.c: In function 'cpu_cmd': >> arch/powerpc/xmon/xmon.c:1168:18: error: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Werror=format=] printf("cpu 0x%x isn't in xmon\n", cpu); ~^ %lx arch/powerpc/xmon/xmon.c:1182:19: error: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Werror=format=] printf("cpu 0x%x didn't take control\n", cpu); ~^ %lx arch/powerpc/xmon/xmon.c: In function 'bpt_cmds': arch/powerpc/xmon/xmon.c:1392:15: error: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long int' [-Werror=format=] printf("%2x %s ", BP_NUM(bp), ~~^ %2lx arch/powerpc/xmon/xmon.c: In function 'excprint': arch/powerpc/xmon/xmon.c:1607:31: error: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'struct pt_regs *' [-Werror=format=] printf("Vector: %lx %s at [%lx]\n", fp->trap, getvecname(trap), fp); ~~^ arch/powerpc/xmon/xmon.c:1611:9: error: too many arguments for format [-Werror=format-extra-args] printf(" lr: ", fp->link); ^~~~~~~~~~ arch/powerpc/xmon/xmon.c:1623:26: error: format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'struct task_struct *' [-Werror=format=] printf(" current = 0x%lx\n", current); ~~^ >> arch/powerpc/xmon/xmon.c:1625:26: error: format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'struct paca_struct *' [-Werror=format=] printf(" paca = 0x%lx\t softe: %d\t irq_happened: 0x%02x\n", ~~^ arch/powerpc/xmon/xmon.c:1629:25: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'pid_t {aka int}' [-Werror=format=] printf(" pid = %ld, comm = %s\n", ~~^ %d arch/powerpc/xmon/xmon.c: In function 'prregs': >> arch/powerpc/xmon/xmon.c:1665:17: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'int' [-Werror=format=] printf("R%.2ld = "REG" R%.2ld = "REG"\n", ~~~~^ %.2d arch/powerpc/xmon/xmon.c:1665:11: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'int' [-Werror=format=] printf("R%.2ld = "REG" R%.2ld = "REG"\n", ^~~~~~~~~~~ n, fp->gpr[n], n+16, fp->gpr[n+16]); ~~~~ arch/powerpc/xmon/xmon.c:1665:34: note: format string is defined here printf("R%.2ld = "REG" R%.2ld = "REG"\n", ~~~~^ %.2d arch/powerpc/xmon/xmon.c:1669:17: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'int' [-Werror=format=] printf("R%.2ld = "REG" R%.2ld = "REG"\n", ~~~~^ %.2d arch/powerpc/xmon/xmon.c:1669:11: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'int' [-Werror=format=] printf("R%.2ld = "REG" R%.2ld = "REG"\n", ^~~~~~~~~~~ n, fp->gpr[n], n+7, fp->gpr[n+7]); ~~~ arch/powerpc/xmon/xmon.c:1669:34: note: format string is defined here printf("R%.2ld = "REG" R%.2ld = "REG"\n", ~~~~^ %.2d arch/powerpc/xmon/xmon.c: In function 'dump_206_sprs': arch/powerpc/xmon/xmon.c:1778:54: error: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=] printf("srr0 = %.16lx srr1 = %.16lx dsisr = %.8x\n", ~~~^ %.8lx arch/powerpc/xmon/xmon.c:1780:54: error: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=] printf("dscr = %.16lx ppr = %.16lx pir = %.8x\n", ~~~^ %.8lx arch/powerpc/xmon/xmon.c:1788:54: error: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=] printf("sdr1 = %.16lx hdar = %.16lx hdsisr = %.8x\n", ~~~^ %.8lx arch/powerpc/xmon/xmon.c:1792:54: error: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=] printf("lpcr = %.16lx pcr = %.16lx lpidr = %.8x\n", ~~~^ %.8lx arch/powerpc/xmon/xmon.c: In function 'dump_207_sprs': arch/powerpc/xmon/xmon.c:1809:54: error: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=] printf("dpdes = %.16lx tir = %.16lx cir = %.8x\n", ~~~^ %.8lx arch/powerpc/xmon/xmon.c:1812:54: error: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=] printf("fscr = %.16lx tar = %.16lx pspb = %.8x\n", ~~~^ %.8lx arch/powerpc/xmon/xmon.c:1825:22: error: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Werror=format=] printf("pmc1 = %.8x pmc2 = %.8x pmc3 = %.8x pmc4 = %.8x\n", ~~~^ %.8lx arch/powerpc/xmon/xmon.c:1825:34: error: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Werror=format=] printf("pmc1 = %.8x pmc2 = %.8x pmc3 = %.8x pmc4 = %.8x\n", ~~~^ %.8lx arch/powerpc/xmon/xmon.c:1825:47: error: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=] printf("pmc1 = %.8x pmc2 = %.8x pmc3 = %.8x pmc4 = %.8x\n", ~~~^ %.8lx arch/powerpc/xmon/xmon.c:1825:62: error: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'long unsigned int' [-Werror=format=] printf("pmc1 = %.8x pmc2 = %.8x pmc3 = %.8x pmc4 = %.8x\n", ~~~^ %.8lx arch/powerpc/xmon/xmon.c:1828:54: error: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=] printf("mmcra = %.16lx siar = %.16lx pmc5 = %.8x\n", ~~~^ %.8lx arch/powerpc/xmon/xmon.c:1830:54: error: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=] printf("sdar = %.16lx sier = %.16lx pmc6 = %.8x\n", ~~~^ %.8lx arch/powerpc/xmon/xmon.c: In function 'dump_one_paca': >> arch/powerpc/xmon/xmon.c:2339:9: error: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'u64 {aka long long unsigned int}' [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2344:7: DUMP(p, kernel_toc, "lx"); ~~~~ >> arch/powerpc/xmon/xmon.c:2344:2: note: in expansion of macro 'DUMP' DUMP(p, kernel_toc, "lx"); ^~~~ arch/powerpc/xmon/xmon.c:2344:24: note: format string is defined here printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ offsetof(struct paca_struct, name)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, lock_token, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, paca_index, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_toc, "lx"); ~~~~~~~~~~~~~~~~~~~~~~^ >> arch/powerpc/xmon/xmon.c:2339:9: error: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'u64 {aka long long unsigned int}' [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2345:7: DUMP(p, kernelbase, "lx"); ~~~~ arch/powerpc/xmon/xmon.c:2345:2: note: in expansion of macro 'DUMP' DUMP(p, kernelbase, "lx"); ^~~~ arch/powerpc/xmon/xmon.c:2345:24: note: format string is defined here printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ offsetof(struct paca_struct, name)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, lock_token, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, paca_index, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_toc, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernelbase, "lx"); ~~~~~~~~~~~~~~~~~~~~~~^ >> arch/powerpc/xmon/xmon.c:2339:9: error: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'u64 {aka long long unsigned int}' [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2346:7: DUMP(p, kernel_msr, "lx"); ~~~~ arch/powerpc/xmon/xmon.c:2346:2: note: in expansion of macro 'DUMP' DUMP(p, kernel_msr, "lx"); ^~~~ arch/powerpc/xmon/xmon.c:2346:24: note: format string is defined here printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ offsetof(struct paca_struct, name)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, lock_token, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, paca_index, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_toc, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernelbase, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_msr, "lx"); ~~~~~~~~~~~~~~~~~~~~~~^ >> arch/powerpc/xmon/xmon.c:2339:9: error: '#' flag used with '%p' gnu_printf format [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2347:2: note: in expansion of macro 'DUMP' DUMP(p, emergency_sp, "px"); ^~~~ arch/powerpc/xmon/xmon.c:2347:25: note: format string is defined here DUMP(p, emergency_sp, "px"); ^ >> arch/powerpc/xmon/xmon.c:2339:9: error: '#' flag used with '%p' gnu_printf format [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2349:2: note: in expansion of macro 'DUMP' DUMP(p, nmi_emergency_sp, "px"); ^~~~ arch/powerpc/xmon/xmon.c:2349:29: note: format string is defined here DUMP(p, nmi_emergency_sp, "px"); ^ >> arch/powerpc/xmon/xmon.c:2339:9: error: '#' flag used with '%p' gnu_printf format [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2350:2: note: in expansion of macro 'DUMP' DUMP(p, mc_emergency_sp, "px"); ^~~~ arch/powerpc/xmon/xmon.c:2350:28: note: format string is defined here DUMP(p, mc_emergency_sp, "px"); ^ >> arch/powerpc/xmon/xmon.c:2339:9: error: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'u64 {aka long long unsigned int}' [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2355:7: DUMP(p, data_offset, "lx"); ~~~~ arch/powerpc/xmon/xmon.c:2355:2: note: in expansion of macro 'DUMP' DUMP(p, data_offset, "lx"); ^~~~ arch/powerpc/xmon/xmon.c:2355:25: note: format string is defined here printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ offsetof(struct paca_struct, name)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, lock_token, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, paca_index, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_toc, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernelbase, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_msr, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3S_64 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, nmi_emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, mc_emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, in_nmi, "x"); ~~~~~~~~~~~~~~~~~~~~~ DUMP(p, in_mce, "x"); ~~~~~~~~~~~~~~~~~~~~~ DUMP(p, hmi_event_available, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, data_offset, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~^ arch/powerpc/xmon/xmon.c:2370:44: error: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'u64 {aka long long unsigned int}' [-Werror=format=] printf(" slb_shadow[%d]: = 0x%016lx 0x%016lx\n", ~~~~~^ %016llx arch/powerpc/xmon/xmon.c:2370:53: error: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'u64 {aka long long unsigned int}' [-Werror=format=] printf(" slb_shadow[%d]: = 0x%016lx 0x%016lx\n", ~~~~~^ %016llx >> arch/powerpc/xmon/xmon.c:2377:43: error: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'u32 {aka unsigned int}' [-Werror=format=] printf(" slb_cache[%d]: = 0x%016lx\n", i, p->slb_cache[i]); ~~~~~^ ~~~~~~~~~~~~~~~ %016x >> arch/powerpc/xmon/xmon.c:2339:9: error: '#' flag used with '%p' gnu_printf format [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2379:2: note: in expansion of macro 'DUMP' DUMP(p, rfi_flush_fallback_area, "px"); ^~~~ arch/powerpc/xmon/xmon.c:2379:36: note: format string is defined here DUMP(p, rfi_flush_fallback_area, "px"); ^ >> arch/powerpc/xmon/xmon.c:2339:9: error: '#' flag used with '%p' gnu_printf format [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2390:2: note: in expansion of macro 'DUMP' DUMP(p, __current, "px"); ^~~~ arch/powerpc/xmon/xmon.c:2390:22: note: format string is defined here DUMP(p, __current, "px"); ^ >> arch/powerpc/xmon/xmon.c:2339:9: error: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'u64 {aka long long unsigned int}' [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2391:7: DUMP(p, kstack, "lx"); ~~~~ arch/powerpc/xmon/xmon.c:2391:2: note: in expansion of macro 'DUMP' DUMP(p, kstack, "lx"); ^~~~ arch/powerpc/xmon/xmon.c:2391:20: note: format string is defined here printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ offsetof(struct paca_struct, name)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, lock_token, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, paca_index, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_toc, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernelbase, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_msr, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3S_64 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, nmi_emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, mc_emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, in_nmi, "x"); ~~~~~~~~~~~~~~~~~~~~~ DUMP(p, in_mce, "x"); ~~~~~~~~~~~~~~~~~~~~~ DUMP(p, hmi_event_available, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, data_offset, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, hw_cpu_id, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, cpu_start, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kexec_state, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3S_64 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ for (i = 0; i < SLB_NUM_BOLTED; i++) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ u64 esid, vsid; ~~~~~~~~~~~~~~~ if (!p->slb_shadow_ptr) ~~~~~~~~~~~~~~~~~~~~~~~ continue; ~~~~~~~~~ esid = be64_to_cpu(p->slb_shadow_ptr->save_area[i].esid); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vsid = be64_to_cpu(p->slb_shadow_ptr->save_area[i].vsid); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (esid || vsid) { ~~~~~~~~~~~~~~~~~~~ printf(" slb_shadow[%d]: = 0x%016lx 0x%016lx\n", ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ i, esid, vsid); ~~~~~~~~~~~~~~~ } ~ } ~ DUMP(p, vmalloc_sllp, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, slb_cache_ptr, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for (i = 0; i < SLB_CACHE_ENTRIES; i++) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" slb_cache[%d]: = 0x%016lx\n", i, p->slb_cache[i]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, rfi_flush_fallback_area, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, dscr_default, "llx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3E ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, pgd, "px"); ~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_pgd, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, tcd_ptr, "px"); ~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, mc_kstack, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, crit_kstack, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, dbg_kstack, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, __current, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kstack, "lx"); ~~~~~~~~~~~~~~~~~~^ arch/powerpc/xmon/xmon.c:2392:41: error: format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'u64 {aka long long unsigned int}' [-Werror=format=] printf(" kstack_base = 0x%016lx\n", p->kstack & ~(THREAD_SIZE - 1)); ~~~~~^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ %016llx >> arch/powerpc/xmon/xmon.c:2339:9: error: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'u64 {aka long long unsigned int}' [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2393:7: DUMP(p, stab_rr, "lx"); ~~~~ arch/powerpc/xmon/xmon.c:2393:2: note: in expansion of macro 'DUMP' DUMP(p, stab_rr, "lx"); ^~~~ arch/powerpc/xmon/xmon.c:2393:21: note: format string is defined here printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ offsetof(struct paca_struct, name)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, lock_token, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, paca_index, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_toc, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernelbase, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_msr, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3S_64 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, nmi_emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, mc_emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, in_nmi, "x"); ~~~~~~~~~~~~~~~~~~~~~ DUMP(p, in_mce, "x"); ~~~~~~~~~~~~~~~~~~~~~ DUMP(p, hmi_event_available, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, data_offset, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, hw_cpu_id, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, cpu_start, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kexec_state, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3S_64 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ for (i = 0; i < SLB_NUM_BOLTED; i++) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ u64 esid, vsid; ~~~~~~~~~~~~~~~ if (!p->slb_shadow_ptr) ~~~~~~~~~~~~~~~~~~~~~~~ continue; ~~~~~~~~~ esid = be64_to_cpu(p->slb_shadow_ptr->save_area[i].esid); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vsid = be64_to_cpu(p->slb_shadow_ptr->save_area[i].vsid); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (esid || vsid) { ~~~~~~~~~~~~~~~~~~~ printf(" slb_shadow[%d]: = 0x%016lx 0x%016lx\n", ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ i, esid, vsid); ~~~~~~~~~~~~~~~ } ~ } ~ DUMP(p, vmalloc_sllp, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, slb_cache_ptr, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for (i = 0; i < SLB_CACHE_ENTRIES; i++) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" slb_cache[%d]: = 0x%016lx\n", i, p->slb_cache[i]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, rfi_flush_fallback_area, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, dscr_default, "llx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3E ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, pgd, "px"); ~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_pgd, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, tcd_ptr, "px"); ~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, mc_kstack, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, crit_kstack, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, dbg_kstack, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, __current, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kstack, "lx"); ~~~~~~~~~~~~~~~~~~~~~~ printf(" kstack_base = 0x%016lx\n", p->kstack & ~(THREAD_SIZE - 1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, stab_rr, "lx"); ~~~~~~~~~~~~~~~~~~~^ >> arch/powerpc/xmon/xmon.c:2339:9: error: format '%lx' expects argument of type 'long unsigned int', but argument 5 has type 'u64 {aka long long unsigned int}' [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2394:7: DUMP(p, saved_r1, "lx"); ~~~~ arch/powerpc/xmon/xmon.c:2394:2: note: in expansion of macro 'DUMP' DUMP(p, saved_r1, "lx"); ^~~~ arch/powerpc/xmon/xmon.c:2394:22: note: format string is defined here printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ offsetof(struct paca_struct, name)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, lock_token, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, paca_index, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_toc, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernelbase, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_msr, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3S_64 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, nmi_emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, mc_emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, in_nmi, "x"); ~~~~~~~~~~~~~~~~~~~~~ DUMP(p, in_mce, "x"); ~~~~~~~~~~~~~~~~~~~~~ DUMP(p, hmi_event_available, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, data_offset, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, hw_cpu_id, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, cpu_start, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kexec_state, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3S_64 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ for (i = 0; i < SLB_NUM_BOLTED; i++) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ u64 esid, vsid; ~~~~~~~~~~~~~~~ if (!p->slb_shadow_ptr) ~~~~~~~~~~~~~~~~~~~~~~~ continue; ~~~~~~~~~ esid = be64_to_cpu(p->slb_shadow_ptr->save_area[i].esid); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vsid = be64_to_cpu(p->slb_shadow_ptr->save_area[i].vsid); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (esid || vsid) { ~~~~~~~~~~~~~~~~~~~ printf(" slb_shadow[%d]: = 0x%016lx 0x%016lx\n", ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ i, esid, vsid); ~~~~~~~~~~~~~~~ } ~ } ~ DUMP(p, vmalloc_sllp, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, slb_cache_ptr, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for (i = 0; i < SLB_CACHE_ENTRIES; i++) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" slb_cache[%d]: = 0x%016lx\n", i, p->slb_cache[i]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, rfi_flush_fallback_area, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, dscr_default, "llx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3E ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, pgd, "px"); ~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_pgd, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, tcd_ptr, "px"); ~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, mc_kstack, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, crit_kstack, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, dbg_kstack, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, __current, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kstack, "lx"); ~~~~~~~~~~~~~~~~~~~~~~ printf(" kstack_base = 0x%016lx\n", p->kstack & ~(THREAD_SIZE - 1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, stab_rr, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, saved_r1, "lx"); ~~~~~~~~~~~~~~~~~~~~^ >> arch/powerpc/xmon/xmon.c:2339:9: error: '#' flag used with '%p' gnu_printf format [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2408:2: note: in expansion of macro 'DUMP' DUMP(p, core_idle_state_ptr, "px"); ^~~~ arch/powerpc/xmon/xmon.c:2408:32: note: format string is defined here DUMP(p, core_idle_state_ptr, "px"); ^ >> arch/powerpc/xmon/xmon.c:2339:9: error: format '%llx' expects argument of type 'long long unsigned int', but argument 5 has type 'long unsigned int' [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2414:7: DUMP(p, accounting.utime, "llx"); ~~~~~~~~~~~~~~~ arch/powerpc/xmon/xmon.c:2414:2: note: in expansion of macro 'DUMP' DUMP(p, accounting.utime, "llx"); ^~~~ arch/powerpc/xmon/xmon.c:2414:31: note: format string is defined here printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ offsetof(struct paca_struct, name)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, lock_token, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, paca_index, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_toc, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernelbase, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_msr, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3S_64 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, nmi_emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, mc_emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, in_nmi, "x"); ~~~~~~~~~~~~~~~~~~~~~ DUMP(p, in_mce, "x"); ~~~~~~~~~~~~~~~~~~~~~ DUMP(p, hmi_event_available, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, data_offset, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, hw_cpu_id, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, cpu_start, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kexec_state, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3S_64 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ for (i = 0; i < SLB_NUM_BOLTED; i++) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ u64 esid, vsid; ~~~~~~~~~~~~~~~ if (!p->slb_shadow_ptr) ~~~~~~~~~~~~~~~~~~~~~~~ continue; ~~~~~~~~~ esid = be64_to_cpu(p->slb_shadow_ptr->save_area[i].esid); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vsid = be64_to_cpu(p->slb_shadow_ptr->save_area[i].vsid); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (esid || vsid) { ~~~~~~~~~~~~~~~~~~~ printf(" slb_shadow[%d]: = 0x%016lx 0x%016lx\n", ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ i, esid, vsid); ~~~~~~~~~~~~~~~ } ~ } ~ DUMP(p, vmalloc_sllp, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, slb_cache_ptr, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for (i = 0; i < SLB_CACHE_ENTRIES; i++) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" slb_cache[%d]: = 0x%016lx\n", i, p->slb_cache[i]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, rfi_flush_fallback_area, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, dscr_default, "llx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3E ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, pgd, "px"); ~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_pgd, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, tcd_ptr, "px"); ~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, mc_kstack, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, crit_kstack, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, dbg_kstack, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, __current, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kstack, "lx"); ~~~~~~~~~~~~~~~~~~~~~~ printf(" kstack_base = 0x%016lx\n", p->kstack & ~(THREAD_SIZE - 1)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, stab_rr, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, saved_r1, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, trap_save, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, irq_soft_mask, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, irq_happened, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, io_sync, "x"); ~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, irq_work_pending, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, nap_state_lost, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, sprg_vdso, "llx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_TRANSACTIONAL_MEM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, tm_scratch, "llx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ #ifdef CONFIG_PPC_POWERNV ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, core_idle_state_ptr, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, thread_idle_state, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, thread_mask, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, subcore_sibling_mask, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, accounting.utime, "llx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ >> arch/powerpc/xmon/xmon.c:2339:9: error: format '%llx' expects argument of type 'long long unsigned int', but argument 5 has type 'long unsigned int' [-Werror=format=] printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ^ arch/powerpc/xmon/xmon.c:2415:7: DUMP(p, accounting.stime, "llx"); ~~~~~~~~~~~~~~~ arch/powerpc/xmon/xmon.c:2415:2: note: in expansion of macro 'DUMP' DUMP(p, accounting.stime, "llx"); ^~~~ arch/powerpc/xmon/xmon.c:2415:31: note: format string is defined here printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ offsetof(struct paca_struct, name)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, lock_token, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, paca_index, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_toc, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernelbase, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_msr, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3S_64 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, nmi_emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, mc_emergency_sp, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, in_nmi, "x"); ~~~~~~~~~~~~~~~~~~~~~ DUMP(p, in_mce, "x"); ~~~~~~~~~~~~~~~~~~~~~ DUMP(p, hmi_event_available, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, data_offset, "lx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, hw_cpu_id, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, cpu_start, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, kexec_state, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3S_64 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ for (i = 0; i < SLB_NUM_BOLTED; i++) { ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ u64 esid, vsid; ~~~~~~~~~~~~~~~ if (!p->slb_shadow_ptr) ~~~~~~~~~~~~~~~~~~~~~~~ continue; ~~~~~~~~~ esid = be64_to_cpu(p->slb_shadow_ptr->save_area[i].esid); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vsid = be64_to_cpu(p->slb_shadow_ptr->save_area[i].vsid); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (esid || vsid) { ~~~~~~~~~~~~~~~~~~~ printf(" slb_shadow[%d]: = 0x%016lx 0x%016lx\n", ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ i, esid, vsid); ~~~~~~~~~~~~~~~ } ~ } ~ DUMP(p, vmalloc_sllp, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, slb_cache_ptr, "x"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ for (i = 0; i < SLB_CACHE_ENTRIES; i++) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf(" slb_cache[%d]: = 0x%016lx\n", i, p->slb_cache[i]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, rfi_flush_fallback_area, "px"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif ~~~~~~ DUMP(p, dscr_default, "llx"); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #ifdef CONFIG_PPC_BOOK3E ~~~~~~~~~~~~~~~~~~~~~~~~ DUMP(p, pgd, "px"); ~~~~~~~~~~~~~~~~~~~ DUMP(p, kernel_pgd, "px"); .. vim +1168 arch/powerpc/xmon/xmon.c ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1138 ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1139 static int cpu_cmd(void) ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1140 { ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1141 #ifdef CONFIG_SMP fd3bb9128 arch/powerpc/xmon/xmon.c Paul Mackerras 2013-09-03 1142 unsigned long cpu, first_cpu, last_cpu; ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1143 int timeout; ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1144 ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1145 if (!scanhex(&cpu)) { ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1146 /* print cpus waiting or in xmon */ ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1147 printf("cpus stopped:"); fd3bb9128 arch/powerpc/xmon/xmon.c Paul Mackerras 2013-09-03 1148 last_cpu = first_cpu = NR_CPUS; bc1d77029 arch/powerpc/xmon/xmon.c Anton Blanchard 2012-06-28 1149 for_each_possible_cpu(cpu) { 104699c0a arch/powerpc/xmon/xmon.c KOSAKI Motohiro 2011-04-28 1150 if (cpumask_test_cpu(cpu, &cpus_in_xmon)) { fd3bb9128 arch/powerpc/xmon/xmon.c Paul Mackerras 2013-09-03 1151 if (cpu == last_cpu + 1) { fd3bb9128 arch/powerpc/xmon/xmon.c Paul Mackerras 2013-09-03 1152 last_cpu = cpu; ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1153 } else { fd3bb9128 arch/powerpc/xmon/xmon.c Paul Mackerras 2013-09-03 1154 if (last_cpu != first_cpu) 736256e4f arch/powerpc/xmon/xmon.c Michael Ellerman 2014-05-26 1155 printf("-0x%lx", last_cpu); fd3bb9128 arch/powerpc/xmon/xmon.c Paul Mackerras 2013-09-03 1156 last_cpu = first_cpu = cpu; 736256e4f arch/powerpc/xmon/xmon.c Michael Ellerman 2014-05-26 1157 printf(" 0x%lx", cpu); ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1158 } ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1159 } fd3bb9128 arch/powerpc/xmon/xmon.c Paul Mackerras 2013-09-03 1160 } fd3bb9128 arch/powerpc/xmon/xmon.c Paul Mackerras 2013-09-03 1161 if (last_cpu != first_cpu) 736256e4f arch/powerpc/xmon/xmon.c Michael Ellerman 2014-05-26 1162 printf("-0x%lx", last_cpu); ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1163 printf("\n"); ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1164 return 0; ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1165 } ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1166 /* try to switch to cpu specified */ 104699c0a arch/powerpc/xmon/xmon.c KOSAKI Motohiro 2011-04-28 1167 if (!cpumask_test_cpu(cpu, &cpus_in_xmon)) { ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 @1168 printf("cpu 0x%x isn't in xmon\n", cpu); ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1169 return 0; ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1170 } ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1171 xmon_taken = 0; ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1172 mb(); ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1173 xmon_owner = cpu; ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1174 timeout = 10000000; ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1175 while (!xmon_taken) { ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1176 if (--timeout == 0) { ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1177 if (test_and_set_bit(0, &xmon_taken)) ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1178 break; ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1179 /* take control back */ ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1180 mb(); ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1181 xmon_owner = smp_processor_id(); 736256e4f arch/powerpc/xmon/xmon.c Michael Ellerman 2014-05-26 1182 printf("cpu 0x%x didn't take control\n", cpu); ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1183 return 0; ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1184 } ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1185 barrier(); ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1186 } ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1187 return 1; ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1188 #else ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1189 return 0; ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1190 #endif /* CONFIG_SMP */ ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1191 } ^1da177e4 arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 1192 :::::: The code at line 1168 was first introduced by commit :::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2 :::::: TO: Linus Torvalds <torvalds@ppc970.osdl.org> :::::: CC: Linus Torvalds <torvalds@ppc970.osdl.org> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Hi Mathieu,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on v4.16-rc4]
[also build test ERROR on next-20180316]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Mathieu-Malaterre/Start-using-__printf-attribute-single-commit-series/20180318-035038
config: powerpc-currituck_defconfig (attached as .config)
compiler: powerpc-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
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
make.cross ARCH=powerpc
All errors (new ones prefixed by >>):
arch/powerpc/xmon/xmon.c: In function 'xmon_core':
>> arch/powerpc/xmon/xmon.c:523:47: error: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'int' [-Werror=format=]
printf("cpu 0x%x stopped at breakpoint 0x%lx (",
~~^
%x
arch/powerpc/xmon/xmon.c: In function 'cpu_cmd':
arch/powerpc/xmon/xmon.c:1168:18: error: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Werror=format=]
printf("cpu 0x%x isn't in xmon\n", cpu);
~^
%lx
arch/powerpc/xmon/xmon.c:1182:19: error: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Werror=format=]
printf("cpu 0x%x didn't take control\n", cpu);
~^
%lx
arch/powerpc/xmon/xmon.c: In function 'bpt_cmds':
arch/powerpc/xmon/xmon.c:1365:32: error: format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'int' [-Werror=format=]
printf("Cleared breakpoint %lx (", BP_NUM(bp));
~~^
%x
arch/powerpc/xmon/xmon.c: In function 'excprint':
arch/powerpc/xmon/xmon.c:1607:31: error: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'struct pt_regs *' [-Werror=format=]
printf("Vector: %lx %s at [%lx]\n", fp->trap, getvecname(trap), fp);
~~^
arch/powerpc/xmon/xmon.c:1611:9: error: too many arguments for format [-Werror=format-extra-args]
printf(" lr: ", fp->link);
^~~~~~~~~~
arch/powerpc/xmon/xmon.c:1623:26: error: format '%lx' expects argument of type 'long unsigned int', but argument 2 has type 'struct task_struct *' [-Werror=format=]
printf(" current = 0x%lx\n", current);
~~^
arch/powerpc/xmon/xmon.c:1629:25: error: format '%ld' expects argument of type 'long int', but argument 2 has type 'pid_t {aka int}' [-Werror=format=]
printf(" pid = %ld, comm = %s\n",
~~^
%d
current->pid, current->comm);
~~~~~~~~~~~~
arch/powerpc/xmon/xmon.c: In function 'prregs':
arch/powerpc/xmon/xmon.c:1674:22: error: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Werror=format=]
printf("R%.2d = %.8x%s", n, fp->gpr[n],
~~~^ ~~~~~~~~~~
%.8lx
arch/powerpc/xmon/xmon.c: In function 'dump_by_size':
arch/powerpc/xmon/xmon.c:2567:16: error: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'u64 {aka long long unsigned int}' [-Werror=format=]
printf("%0*lx", size * 2, val);
~~~~^
%0*llx
arch/powerpc/xmon/xmon.c: In function 'generic_inst_dump':
arch/powerpc/xmon/xmon.c:197:14: error: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Werror=format=]
#define REG "%.8lx"
^
arch/powerpc/xmon/xmon.c:2731:11: note: in expansion of macro 'REG'
printf(REG" %.8x", adr, inst);
^~~
arch/powerpc/xmon/xmon.c:2731:20: note: format string is defined here
printf(REG" %.8x", adr, inst);
~~~^
%.8lx
arch/powerpc/xmon/xmon.c: In function 'memdiffs':
arch/powerpc/xmon/xmon.c:2863:17: error: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'unsigned char *' [-Werror=format=]
printf("%.16x %.2x # %.16x %.2x\n", p1 - 1,
~~~~^ ~~~~~~
%.16hhn
arch/powerpc/xmon/xmon.c:2863:30: error: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'unsigned char *' [-Werror=format=]
printf("%.16x %.2x # %.16x %.2x\n", p1 - 1,
~~~~^
%.16hhn
p1[-1], p2 - 1, p2[-1]);
~~~~~~
arch/powerpc/xmon/xmon.c: In function 'memzcan':
arch/powerpc/xmon/xmon.c:2923:15: error: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Werror=format=]
printf("%.8x\n", a - mskip);
~~~^ ~~~~~~~~~
%.8lx
arch/powerpc/xmon/xmon.c:2929:14: error: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Werror=format=]
printf("%.8x\n", a - mskip);
~~~^ ~~~~~~~~~
%.8lx
arch/powerpc/xmon/xmon.c: In function 'dump_tlb_44x':
arch/powerpc/xmon/xmon.c:3445:21: error: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Werror=format=]
printf("[%02x] %08x %08x %08x ", i, w0, w1, w2);
~~~^
%08lx
arch/powerpc/xmon/xmon.c:3445:26: error: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=]
printf("[%02x] %08x %08x %08x ", i, w0, w1, w2);
~~~^
%08lx
arch/powerpc/xmon/xmon.c:3445:31: error: format '%x' expects argument of type 'unsigned int', but argument 5 has type 'long unsigned int' [-Werror=format=]
printf("[%02x] %08x %08x %08x ", i, w0, w1, w2);
~~~^
%08lx
arch/powerpc/xmon/xmon.c:3447:17: error: format '%x' expects argument of type 'unsigned int', but argument 2 has type 'long unsigned int' [-Werror=format=]
printf("V %08x -> %01x%08x %c%c%c%c%c",
~~~^
%08lx
arch/powerpc/xmon/xmon.c:3447:25: error: format '%x' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Werror=format=]
printf("V %08x -> %01x%08x %c%c%c%c%c",
~~~^
%01lx
arch/powerpc/xmon/xmon.c:3447:29: error: format '%x' expects argument of type 'unsigned int', but argument 4 has type 'long unsigned int' [-Werror=format=]
printf("V %08x -> %01x%08x %c%c%c%c%c",
~~~^
%08lx
cc1: all warnings being treated as errors
vim +523 arch/powerpc/xmon/xmon.c
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 466
f13659e0 arch/powerpc/xmon/xmon.c Anton Blanchard 2007-03-21 467 local_irq_save(flags);
a71d64b4 arch/powerpc/xmon/xmon.c Anton Blanchard 2014-08-05 468 hard_irq_disable();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 469
ed49f7fd arch/powerpc/xmon/xmon.c Breno Leitao 2017-08-02 470 tracing_enabled = tracing_is_on();
ed49f7fd arch/powerpc/xmon/xmon.c Breno Leitao 2017-08-02 471 tracing_off();
ed49f7fd arch/powerpc/xmon/xmon.c Breno Leitao 2017-08-02 472
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 473 bp = in_breakpoint_table(regs->nip, &offset);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 474 if (bp != NULL) {
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 475 regs->nip = bp->address + offset;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 476 atomic_dec(&bp->ref_count);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 477 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 478
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 479 remove_cpu_bpts();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 480
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 481 #ifdef CONFIG_SMP
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 482 cpu = smp_processor_id();
104699c0 arch/powerpc/xmon/xmon.c KOSAKI Motohiro 2011-04-28 483 if (cpumask_test_cpu(cpu, &cpus_in_xmon)) {
31cdd0c3 arch/powerpc/xmon/xmon.c Paul Mackerras 2016-04-13 484 /*
31cdd0c3 arch/powerpc/xmon/xmon.c Paul Mackerras 2016-04-13 485 * We catch SPR read/write faults here because the 0x700, 0xf60
31cdd0c3 arch/powerpc/xmon/xmon.c Paul Mackerras 2016-04-13 486 * etc. handlers don't call debugger_fault_handler().
31cdd0c3 arch/powerpc/xmon/xmon.c Paul Mackerras 2016-04-13 487 */
31cdd0c3 arch/powerpc/xmon/xmon.c Paul Mackerras 2016-04-13 488 if (catch_spr_faults)
31cdd0c3 arch/powerpc/xmon/xmon.c Paul Mackerras 2016-04-13 489 longjmp(bus_error_jmp, 1);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 490 get_output_lock();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 491 excprint(regs);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 492 printf("cpu 0x%x: Exception %lx %s in xmon, "
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 493 "returning to main loop\n",
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 494 cpu, regs->trap, getvecname(TRAP(regs)));
5cb4cc0d arch/ppc64/xmon/xmon.c Haren Myneni 2005-08-03 495 release_output_lock();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 496 longjmp(xmon_fault_jmp[cpu], 1);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 497 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 498
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 499 if (setjmp(recurse_jmp) != 0) {
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 500 if (!in_xmon || !xmon_gate) {
5cb4cc0d arch/ppc64/xmon/xmon.c Haren Myneni 2005-08-03 501 get_output_lock();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 502 printf("xmon: WARNING: bad recursive fault "
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 503 "on cpu 0x%x\n", cpu);
5cb4cc0d arch/ppc64/xmon/xmon.c Haren Myneni 2005-08-03 504 release_output_lock();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 505 goto waiting;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 506 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 507 secondary = !(xmon_taken && cpu == xmon_owner);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 508 goto cmdloop;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 509 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 510
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 511 xmon_fault_jmp[cpu] = recurse_jmp;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 512
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 513 bp = NULL;
9f0b0793 arch/powerpc/xmon/xmon.c Michael Ellerman 2011-04-07 514 if ((regs->msr & (MSR_IR|MSR_PR|MSR_64BIT)) == (MSR_IR|MSR_64BIT))
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 515 bp = at_breakpoint(regs->nip);
daf8f403 arch/powerpc/xmon/xmon.c Josh Boyer 2009-09-23 516 if (bp || unrecoverable_excp(regs))
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 517 fromipi = 0;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 518
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 519 if (!fromipi) {
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 520 get_output_lock();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 521 excprint(regs);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 522 if (bp) {
736256e4 arch/powerpc/xmon/xmon.c Michael Ellerman 2014-05-26 @523 printf("cpu 0x%x stopped at breakpoint 0x%lx (",
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 524 cpu, BP_NUM(bp));
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 525 xmon_print_symbol(regs->nip, " ", ")\n");
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 526 }
daf8f403 arch/powerpc/xmon/xmon.c Josh Boyer 2009-09-23 527 if (unrecoverable_excp(regs))
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 528 printf("WARNING: exception is not recoverable, "
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 529 "can't continue\n");
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 530 release_output_lock();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 531 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 532
d2b496e5 arch/powerpc/xmon/xmon.c Michael Ellerman 2013-12-23 533 cpumask_set_cpu(cpu, &cpus_in_xmon);
d2b496e5 arch/powerpc/xmon/xmon.c Michael Ellerman 2013-12-23 534
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 535 waiting:
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 536 secondary = 1;
064996d6 arch/powerpc/xmon/xmon.c Nicholas Piggin 2017-09-29 537 spin_begin();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 538 while (secondary && !xmon_gate) {
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 539 if (in_xmon == 0) {
064996d6 arch/powerpc/xmon/xmon.c Nicholas Piggin 2017-09-29 540 if (fromipi) {
064996d6 arch/powerpc/xmon/xmon.c Nicholas Piggin 2017-09-29 541 spin_end();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 542 goto leave;
064996d6 arch/powerpc/xmon/xmon.c Nicholas Piggin 2017-09-29 543 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 544 secondary = test_and_set_bit(0, &in_xmon);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 545 }
064996d6 arch/powerpc/xmon/xmon.c Nicholas Piggin 2017-09-29 546 spin_cpu_relax();
064996d6 arch/powerpc/xmon/xmon.c Nicholas Piggin 2017-09-29 547 touch_nmi_watchdog();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 548 }
064996d6 arch/powerpc/xmon/xmon.c Nicholas Piggin 2017-09-29 549 spin_end();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 550
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 551 if (!secondary && !xmon_gate) {
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 552 /* we are the first cpu to come in */
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 553 /* interrupt other cpu(s) */
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 554 int ncpus = num_online_cpus();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 555
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 556 xmon_owner = cpu;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 557 mb();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 558 if (ncpus > 1) {
1cd6ed7c arch/powerpc/xmon/xmon.c Nicholas Piggin 2016-12-20 559 /*
1cd6ed7c arch/powerpc/xmon/xmon.c Nicholas Piggin 2016-12-20 560 * A system reset (trap == 0x100) can be triggered on
1cd6ed7c arch/powerpc/xmon/xmon.c Nicholas Piggin 2016-12-20 561 * all CPUs, so when we come in via 0x100 try waiting
1cd6ed7c arch/powerpc/xmon/xmon.c Nicholas Piggin 2016-12-20 562 * for the other CPUs to come in before we send the
1cd6ed7c arch/powerpc/xmon/xmon.c Nicholas Piggin 2016-12-20 563 * debugger break (IPI). This is similar to
1cd6ed7c arch/powerpc/xmon/xmon.c Nicholas Piggin 2016-12-20 564 * crash_kexec_secondary().
1cd6ed7c arch/powerpc/xmon/xmon.c Nicholas Piggin 2016-12-20 565 */
1cd6ed7c arch/powerpc/xmon/xmon.c Nicholas Piggin 2016-12-20 566 if (TRAP(regs) != 0x100 || !wait_for_other_cpus(ncpus))
e0476371 arch/powerpc/xmon/xmon.c Milton Miller 2011-05-10 567 smp_send_debugger_break();
1cd6ed7c arch/powerpc/xmon/xmon.c Nicholas Piggin 2016-12-20 568
1cd6ed7c arch/powerpc/xmon/xmon.c Nicholas Piggin 2016-12-20 569 wait_for_other_cpus(ncpus);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 570 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 571 remove_bpts();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 572 disable_surveillance();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 573 /* for breakpoint or single step, print the current instr. */
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 574 if (bp || TRAP(regs) == 0xd00)
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 575 ppc_inst_dump(regs->nip, 1, 0);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 576 printf("enter ? for help\n");
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 577 mb();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 578 xmon_gate = 1;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 579 barrier();
064996d6 arch/powerpc/xmon/xmon.c Nicholas Piggin 2017-09-29 580 touch_nmi_watchdog();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 581 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 582
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 583 cmdloop:
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 584 while (in_xmon) {
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 585 if (secondary) {
064996d6 arch/powerpc/xmon/xmon.c Nicholas Piggin 2017-09-29 586 spin_begin();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 587 if (cpu == xmon_owner) {
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 588 if (!test_and_set_bit(0, &xmon_taken)) {
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 589 secondary = 0;
064996d6 arch/powerpc/xmon/xmon.c Nicholas Piggin 2017-09-29 590 spin_end();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 591 continue;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 592 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 593 /* missed it */
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 594 while (cpu == xmon_owner)
064996d6 arch/powerpc/xmon/xmon.c Nicholas Piggin 2017-09-29 595 spin_cpu_relax();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 596 }
064996d6 arch/powerpc/xmon/xmon.c Nicholas Piggin 2017-09-29 597 spin_cpu_relax();
064996d6 arch/powerpc/xmon/xmon.c Nicholas Piggin 2017-09-29 598 touch_nmi_watchdog();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 599 } else {
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 600 cmd = cmds(regs);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 601 if (cmd != 0) {
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 602 /* exiting xmon */
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 603 insert_bpts();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 604 xmon_gate = 0;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 605 wmb();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 606 in_xmon = 0;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 607 break;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 608 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 609 /* have switched to some other cpu */
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 610 secondary = 1;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 611 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 612 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 613 leave:
104699c0 arch/powerpc/xmon/xmon.c KOSAKI Motohiro 2011-04-28 614 cpumask_clear_cpu(cpu, &cpus_in_xmon);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 615 xmon_fault_jmp[cpu] = NULL;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 616 #else
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 617 /* UP is simple... */
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 618 if (in_xmon) {
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 619 printf("Exception %lx %s in xmon, returning to main loop\n",
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 620 regs->trap, getvecname(TRAP(regs)));
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 621 longjmp(xmon_fault_jmp[0], 1);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 622 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 623 if (setjmp(recurse_jmp) == 0) {
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 624 xmon_fault_jmp[0] = recurse_jmp;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 625 in_xmon = 1;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 626
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 627 excprint(regs);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 628 bp = at_breakpoint(regs->nip);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 629 if (bp) {
736256e4 arch/powerpc/xmon/xmon.c Michael Ellerman 2014-05-26 630 printf("Stopped at breakpoint %lx (", BP_NUM(bp));
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 631 xmon_print_symbol(regs->nip, " ", ")\n");
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 632 }
daf8f403 arch/powerpc/xmon/xmon.c Josh Boyer 2009-09-23 633 if (unrecoverable_excp(regs))
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 634 printf("WARNING: exception is not recoverable, "
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 635 "can't continue\n");
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 636 remove_bpts();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 637 disable_surveillance();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 638 /* for breakpoint or single step, print the current instr. */
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 639 if (bp || TRAP(regs) == 0xd00)
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 640 ppc_inst_dump(regs->nip, 1, 0);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 641 printf("enter ? for help\n");
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 642 }
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 643
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 644 cmd = cmds(regs);
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 645
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 646 insert_bpts();
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 647 in_xmon = 0;
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 648 #endif
^1da177e arch/ppc64/xmon/xmon.c Linus Torvalds 2005-04-16 649
:::::: The code at line 523 was first introduced by commit
:::::: 736256e4f1bc50bb8198c9b61dffd5fd0de17477 powerpc/xmon: Fix up xmon format strings
:::::: TO: Michael Ellerman <mpe@ellerman.id.au>
:::::: CC: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/arch/powerpc/include/asm/xmon.h b/arch/powerpc/include/asm/xmon.h index eb42a0c6e1d9..30ff69bd8f43 100644 --- a/arch/powerpc/include/asm/xmon.h +++ b/arch/powerpc/include/asm/xmon.h @@ -29,7 +29,7 @@ static inline void xmon_register_spus(struct list_head *list) { }; extern int cpus_are_in_xmon(void); #endif -extern void xmon_printf(const char *format, ...); +extern __printf(1, 2) void xmon_printf(const char *format, ...); #endif /* __KERNEL __ */ #endif /* __ASM_POWERPC_XMON_H */ diff --git a/arch/powerpc/xmon/nonstdio.h b/arch/powerpc/xmon/nonstdio.h index 2202ec61972c..e8deac6c84e2 100644 --- a/arch/powerpc/xmon/nonstdio.h +++ b/arch/powerpc/xmon/nonstdio.h @@ -1,13 +1,13 @@ /* SPDX-License-Identifier: GPL-2.0 */ #define EOF (-1) -#define printf xmon_printf -#define putchar xmon_putchar - extern void xmon_set_pagination_lpp(unsigned long lpp); extern void xmon_start_pagination(void); extern void xmon_end_pagination(void); extern int xmon_putchar(int c); extern void xmon_puts(const char *); extern char *xmon_gets(char *, int); -extern void xmon_printf(const char *, ...); +extern __printf(1, 2) void xmon_printf(const char *fmt, ...); + +#define printf xmon_printf +#define putchar xmon_putchar
Update also the other prototype declaration in asm/xmon.h. Silence warnings (triggered at W=1) by adding relevant __printf attribute. Move #define at bottom of the file to prevent conflict with gcc attribute. CC arch/powerpc/xmon/nonstdio.o arch/powerpc/xmon/nonstdio.c: In function ‘xmon_printf’: arch/powerpc/xmon/nonstdio.c:178:2: error: function might be possible candidate for ‘gnu_printf’ format attribute [-Werror=suggest-attribute=format] n = vsnprintf(xmon_outbuf, sizeof(xmon_outbuf), format, args); ^ cc1: all warnings being treated as errors Signed-off-by: Mathieu Malaterre <malat@debian.org> --- arch/powerpc/include/asm/xmon.h | 2 +- arch/powerpc/xmon/nonstdio.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-)