Re: [PATCH v2] xmon: Use __printf markup to silence compiler

From: Mathieu Malaterre
Date: Tue Apr 24 2018 - 14:56:06 EST


No comment so far... Did I miss anything ?

On Sun, Mar 25, 2018 at 11:06 AM, Mathieu Malaterre <malat@xxxxxxxxxx> wrote:
> Update the other prototype declarations 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.
>
> Solve the original warning:
>
> arch/powerpc/xmon/nonstdio.c:178:2: error: function might be possible candidate for âgnu_printfâ format attribute [-Werror=suggest-attribute=format]
>
> In turn this uncovered the following (partial list) warnings (treated as
> errors with W=1):
>
> arch/powerpc/xmon/xmon.c:2866:17: error: format â%xâ expects argument of type âunsigned intâ, but argument 2 has type âunsigned char *â [-Werror=format=]
> 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=]
> arch/powerpc/xmon/xmon.c:1611:9: error: too many arguments for format [-Werror=format-extra-args]
> 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=]
> arch/powerpc/xmon/xmon.c:630:36: error: format â%lxâ expects argument of type âlong unsigned intâ, but argument 2 has type âintâ [-Werror=format=]
> 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=]
> arch/powerpc/xmon/xmon.c:2570:16: error: format â%lxâ expects argument of type âlong unsigned intâ, but argument 3 has type âu64 {aka long long unsigned int}â [-Werror=format=]
> 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=]
> 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=]
> arch/powerpc/xmon/xmon.c:3016:24: error: format â%lxâ expects argument of type âlong unsigned intâ, but argument 2 has type âpgd_t * {aka struct <anonymous> *}â [-Werror=format=]
> 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=]
> 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=]
> arch/powerpc/xmon/xmon.c:3827:10: error: format â%pâ expects argument of type âvoid *â, but argument 4 has type âlong long unsigned intâ [-Werror=format=]
> arch/powerpc/xmon/xmon.c:3896:50: error: format â%dâ expects argument of type âintâ, but argument 2 has type âlong unsigned intâ [-Werror=format=]
> arch/powerpc/xmon/spu-dis.c:137:18: error: format â%dâ expects argument of type âintâ, but argument 2 has type âlong unsigned intâ [-Werror=format=]
> arch/powerpc/xmon/xmon.c:3827:10: error: format â%dâ expects argument of type âintâ, but argument 4 has type âu64 {aka long long unsigned int}â [-Werror=format=]
> arch/powerpc/xmon/xmon.c:1665:17: error: format â%ldâ expects argument of type âlong intâ, but argument 2 has type âintâ [-Werror=format=]
> arch/powerpc/xmon/xmon.c:2339:9: error: '#' flag used with â%pâ gnu_printf format [-Werror=format=]
>
> Signed-off-by: Mathieu Malaterre <malat@xxxxxxxxxx>
> ---
> v2: resubmit patch series a single patch
>
> arch/powerpc/include/asm/xmon.h | 2 +-
> arch/powerpc/xmon/nonstdio.h | 8 +--
> arch/powerpc/xmon/spu-dis.c | 18 +++---
> arch/powerpc/xmon/xmon.c | 133 ++++++++++++++++++++--------------------
> 4 files changed, 82 insertions(+), 79 deletions(-)
>
> 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
> diff --git a/arch/powerpc/xmon/spu-dis.c b/arch/powerpc/xmon/spu-dis.c
> index e5f89837c82e..4cbc7da88524 100644
> --- a/arch/powerpc/xmon/spu-dis.c
> +++ b/arch/powerpc/xmon/spu-dis.c
> @@ -102,7 +102,7 @@ print_insn_spu (unsigned long insn, unsigned long memaddr)
>
> if (index == 0)
> {
> - printf(".long 0x%x", insn);
> + printf(".long 0x%lx", insn);
> }
> else
> {
> @@ -134,27 +134,27 @@ print_insn_spu (unsigned long insn, unsigned long memaddr)
> switch (arg)
> {
> case A_T:
> - printf("$%d",
> + printf("$%lu",
> DECODE_INSN_RT (insn));
> break;
> case A_A:
> - printf("$%d",
> + printf("$%lu",
> DECODE_INSN_RA (insn));
> break;
> case A_B:
> - printf("$%d",
> + printf("$%lu",
> DECODE_INSN_RB (insn));
> break;
> case A_C:
> - printf("$%d",
> + printf("$%lu",
> DECODE_INSN_RC (insn));
> break;
> case A_S:
> - printf("$sp%d",
> + printf("$sp%lu",
> DECODE_INSN_RA (insn));
> break;
> case A_H:
> - printf("$ch%d",
> + printf("$ch%lu",
> DECODE_INSN_RA (insn));
> break;
> case A_P:
> @@ -162,11 +162,11 @@ print_insn_spu (unsigned long insn, unsigned long memaddr)
> printf("(");
> break;
> case A_U7A:
> - printf("%d",
> + printf("%lu",
> 173 - DECODE_INSN_U8 (insn));
> break;
> case A_U7B:
> - printf("%d",
> + printf("%lu",
> 155 - DECODE_INSN_U8 (insn));
> break;
> case A_S3:
> diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
> index ee113a6e008c..edd7ea85272f 100644
> --- a/arch/powerpc/xmon/xmon.c
> +++ b/arch/powerpc/xmon/xmon.c
> @@ -627,7 +627,7 @@ static int xmon_core(struct pt_regs *regs, int fromipi)
> excprint(regs);
> bp = at_breakpoint(regs->nip);
> if (bp) {
> - printf("Stopped at breakpoint %lx (", BP_NUM(bp));
> + printf("Stopped at breakpoint %tx (", BP_NUM(bp));
> xmon_print_symbol(regs->nip, " ", ")\n");
> }
> if (unrecoverable_excp(regs))
> @@ -1165,7 +1165,7 @@ static int cpu_cmd(void)
> }
> /* try to switch to cpu specified */
> if (!cpumask_test_cpu(cpu, &cpus_in_xmon)) {
> - printf("cpu 0x%x isn't in xmon\n", cpu);
> + printf("cpu 0x%lx isn't in xmon\n", cpu);
> return 0;
> }
> xmon_taken = 0;
> @@ -1179,7 +1179,7 @@ static int cpu_cmd(void)
> /* take control back */
> mb();
> xmon_owner = smp_processor_id();
> - printf("cpu 0x%x didn't take control\n", cpu);
> + printf("cpu 0x%lx didn't take control\n", cpu);
> return 0;
> }
> barrier();
> @@ -1362,7 +1362,7 @@ bpt_cmds(void)
> }
> }
>
> - printf("Cleared breakpoint %lx (", BP_NUM(bp));
> + printf("Cleared breakpoint %tx (", BP_NUM(bp));
> xmon_print_symbol(bp->address, " ", ")\n");
> bp->enabled = 0;
> break;
> @@ -1389,7 +1389,7 @@ bpt_cmds(void)
> for (bp = bpts; bp < &bpts[NBPTS]; ++bp) {
> if (!bp->enabled)
> continue;
> - printf("%2x %s ", BP_NUM(bp),
> + printf("%tx %s ", BP_NUM(bp),
> (bp->enabled & BP_CIABR) ? "inst": "trap");
> xmon_print_symbol(bp->address, " ", "\n");
> }
> @@ -1604,11 +1604,11 @@ static void excprint(struct pt_regs *fp)
> #endif /* CONFIG_SMP */
>
> trap = TRAP(fp);
> - printf("Vector: %lx %s at [%lx]\n", fp->trap, getvecname(trap), fp);
> + printf("Vector: %lx %s at [%p]\n", fp->trap, getvecname(trap), fp);
> printf(" pc: ");
> xmon_print_symbol(fp->nip, ": ", "\n");
>
> - printf(" lr: ", fp->link);
> + printf(" lr: ");
> xmon_print_symbol(fp->link, ": ", "\n");
>
> printf(" sp: %lx\n", fp->gpr[1]);
> @@ -1620,13 +1620,13 @@ static void excprint(struct pt_regs *fp)
> printf(" dsisr: %lx\n", fp->dsisr);
> }
>
> - printf(" current = 0x%lx\n", current);
> + printf(" current = 0x%p\n", current);
> #ifdef CONFIG_PPC64
> - printf(" paca = 0x%lx\t softe: %d\t irq_happened: 0x%02x\n",
> + printf(" paca = 0x%p\t softe: %d\t irq_happened: 0x%02x\n",
> local_paca, local_paca->irq_soft_mask, local_paca->irq_happened);
> #endif
> if (current) {
> - printf(" pid = %ld, comm = %s\n",
> + printf(" pid = %d, comm = %s\n",
> current->pid, current->comm);
> }
>
> @@ -1662,16 +1662,16 @@ static void prregs(struct pt_regs *fp)
> #ifdef CONFIG_PPC64
> if (FULL_REGS(fp)) {
> for (n = 0; n < 16; ++n)
> - printf("R%.2ld = "REG" R%.2ld = "REG"\n",
> + printf("R%.2d = "REG" R%.2d = "REG"\n",
> n, fp->gpr[n], n+16, fp->gpr[n+16]);
> } else {
> for (n = 0; n < 7; ++n)
> - printf("R%.2ld = "REG" R%.2ld = "REG"\n",
> + printf("R%.2d = "REG" R%.2d = "REG"\n",
> n, fp->gpr[n], n+7, fp->gpr[n+7]);
> }
> #else
> for (n = 0; n < 32; ++n) {
> - printf("R%.2d = %.8x%s", n, fp->gpr[n],
> + printf("R%.2d = %.8lx%s", n, fp->gpr[n],
> (n & 3) == 3? "\n": " ");
> if (n == 12 && !FULL_REGS(fp)) {
> printf("\n");
> @@ -1775,9 +1775,9 @@ static void dump_206_sprs(void)
>
> /* Actually some of these pre-date 2.06, but whatevs */
>
> - printf("srr0 = %.16lx srr1 = %.16lx dsisr = %.8x\n",
> + printf("srr0 = %.16lx srr1 = %.16lx dsisr = %.8lx\n",
> mfspr(SPRN_SRR0), mfspr(SPRN_SRR1), mfspr(SPRN_DSISR));
> - printf("dscr = %.16lx ppr = %.16lx pir = %.8x\n",
> + printf("dscr = %.16lx ppr = %.16lx pir = %.8lx\n",
> mfspr(SPRN_DSCR), mfspr(SPRN_PPR), mfspr(SPRN_PIR));
> printf("amr = %.16lx uamor = %.16lx\n",
> mfspr(SPRN_AMR), mfspr(SPRN_UAMOR));
> @@ -1785,11 +1785,11 @@ static void dump_206_sprs(void)
> if (!(mfmsr() & MSR_HV))
> return;
>
> - printf("sdr1 = %.16lx hdar = %.16lx hdsisr = %.8x\n",
> + printf("sdr1 = %.16lx hdar = %.16lx hdsisr = %.8lx\n",
> mfspr(SPRN_SDR1), mfspr(SPRN_HDAR), mfspr(SPRN_HDSISR));
> printf("hsrr0 = %.16lx hsrr1 = %.16lx hdec = %.16lx\n",
> mfspr(SPRN_HSRR0), mfspr(SPRN_HSRR1), mfspr(SPRN_HDEC));
> - printf("lpcr = %.16lx pcr = %.16lx lpidr = %.8x\n",
> + printf("lpcr = %.16lx pcr = %.16lx lpidr = %.8lx\n",
> mfspr(SPRN_LPCR), mfspr(SPRN_PCR), mfspr(SPRN_LPID));
> printf("hsprg0 = %.16lx hsprg1 = %.16lx amor = %.16lx\n",
> mfspr(SPRN_HSPRG0), mfspr(SPRN_HSPRG1), mfspr(SPRN_AMOR));
> @@ -1806,10 +1806,10 @@ static void dump_207_sprs(void)
> if (!cpu_has_feature(CPU_FTR_ARCH_207S))
> return;
>
> - printf("dpdes = %.16lx tir = %.16lx cir = %.8x\n",
> + printf("dpdes = %.16lx tir = %.16lx cir = %.8lx\n",
> mfspr(SPRN_DPDES), mfspr(SPRN_TIR), mfspr(SPRN_CIR));
>
> - printf("fscr = %.16lx tar = %.16lx pspb = %.8x\n",
> + printf("fscr = %.16lx tar = %.16lx pspb = %.8lx\n",
> mfspr(SPRN_FSCR), mfspr(SPRN_TAR), mfspr(SPRN_PSPB));
>
> msr = mfmsr();
> @@ -1822,12 +1822,12 @@ static void dump_207_sprs(void)
>
> printf("mmcr0 = %.16lx mmcr1 = %.16lx mmcr2 = %.16lx\n",
> mfspr(SPRN_MMCR0), mfspr(SPRN_MMCR1), mfspr(SPRN_MMCR2));
> - printf("pmc1 = %.8x pmc2 = %.8x pmc3 = %.8x pmc4 = %.8x\n",
> + printf("pmc1 = %.8lx pmc2 = %.8lx pmc3 = %.8lx pmc4 = %.8lx\n",
> mfspr(SPRN_PMC1), mfspr(SPRN_PMC2),
> mfspr(SPRN_PMC3), mfspr(SPRN_PMC4));
> - printf("mmcra = %.16lx siar = %.16lx pmc5 = %.8x\n",
> + printf("mmcra = %.16lx siar = %.16lx pmc5 = %.8lx\n",
> mfspr(SPRN_MMCRA), mfspr(SPRN_SIAR), mfspr(SPRN_PMC5));
> - printf("sdar = %.16lx sier = %.16lx pmc6 = %.8x\n",
> + printf("sdar = %.16lx sier = %.16lx pmc6 = %.8lx\n",
> mfspr(SPRN_SDAR), mfspr(SPRN_SIER), mfspr(SPRN_PMC6));
> printf("ebbhr = %.16lx ebbrr = %.16lx bescr = %.16lx\n",
> mfspr(SPRN_EBBHR), mfspr(SPRN_EBBRR), mfspr(SPRN_BESCR));
> @@ -2337,22 +2337,25 @@ static void dump_one_paca(int cpu)
>
> #define DUMP(paca, name, format) \
> printf(" %-*s = %#-*"format"\t(0x%lx)\n", 20, #name, 18, paca->name, \
> - offsetof(struct paca_struct, name));
> + offsetof(struct paca_struct, name))
> +#define DUMPPTR(paca, name, format) \
> + 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");
> + DUMP(p, kernel_toc, "llx");
> + DUMP(p, kernelbase, "llx");
> + DUMP(p, kernel_msr, "llx");
> + DUMPPTR(p, emergency_sp, "p");
> #ifdef CONFIG_PPC_BOOK3S_64
> - DUMP(p, nmi_emergency_sp, "px");
> - DUMP(p, mc_emergency_sp, "px");
> + DUMPPTR(p, nmi_emergency_sp, "p");
> + DUMPPTR(p, mc_emergency_sp, "p");
> DUMP(p, in_nmi, "x");
> DUMP(p, in_mce, "x");
> DUMP(p, hmi_event_available, "x");
> #endif
> - DUMP(p, data_offset, "lx");
> + DUMP(p, data_offset, "llx");
> DUMP(p, hw_cpu_id, "x");
> DUMP(p, cpu_start, "x");
> DUMP(p, kexec_state, "x");
> @@ -2367,16 +2370,16 @@ static void dump_one_paca(int cpu)
> vsid = be64_to_cpu(p->slb_shadow_ptr->save_area[i].vsid);
>
> if (esid || vsid) {
> - printf(" slb_shadow[%d]: = 0x%016lx 0x%016lx\n",
> + printf(" slb_shadow[%d]: = 0x%016llx 0x%016llx\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]);
> + printf(" slb_cache[%d]: = 0x%016x\n", i, p->slb_cache[i]);
>
> - DUMP(p, rfi_flush_fallback_area, "px");
> + DUMPPTR(p, rfi_flush_fallback_area, "p");
> #endif
> DUMP(p, dscr_default, "llx");
> #ifdef CONFIG_PPC_BOOK3E
> @@ -2387,11 +2390,11 @@ static void dump_one_paca(int cpu)
> 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");
> + DUMPPTR(p, __current, "p");
> + DUMP(p, kstack, "llx");
> + printf(" kstack_base = 0x%016llx\n", p->kstack & ~(THREAD_SIZE - 1));
> + DUMP(p, stab_rr, "llx");
> + DUMP(p, saved_r1, "llx");
> DUMP(p, trap_save, "x");
> DUMP(p, irq_soft_mask, "x");
> DUMP(p, irq_happened, "x");
> @@ -2405,20 +2408,20 @@ static void dump_one_paca(int cpu)
> #endif
>
> #ifdef CONFIG_PPC_POWERNV
> - DUMP(p, core_idle_state_ptr, "px");
> + DUMPPTR(p, core_idle_state_ptr, "p");
> DUMP(p, thread_idle_state, "x");
> DUMP(p, thread_mask, "x");
> DUMP(p, subcore_sibling_mask, "x");
> #endif
>
> - DUMP(p, accounting.utime, "llx");
> - DUMP(p, accounting.stime, "llx");
> - DUMP(p, accounting.utime_scaled, "llx");
> - DUMP(p, accounting.starttime, "llx");
> - DUMP(p, accounting.starttime_user, "llx");
> - DUMP(p, accounting.startspurr, "llx");
> - DUMP(p, accounting.utime_sspurr, "llx");
> - DUMP(p, accounting.steal_time, "llx");
> + DUMP(p, accounting.utime, "lx");
> + DUMP(p, accounting.stime, "lx");
> + DUMP(p, accounting.utime_scaled, "lx");
> + DUMP(p, accounting.starttime, "lx");
> + DUMP(p, accounting.starttime_user, "lx");
> + DUMP(p, accounting.startspurr, "lx");
> + DUMP(p, accounting.utime_sspurr, "lx");
> + DUMP(p, accounting.steal_time, "lx");
> #undef DUMP
>
> catch_memory_errors = 0;
> @@ -2564,7 +2567,7 @@ static void dump_by_size(unsigned long addr, long count, int size)
> default: val = 0;
> }
>
> - printf("%0*lx", size * 2, val);
> + printf("%0*llx", size * 2, val);
> }
> printf("\n");
> }
> @@ -2728,7 +2731,7 @@ generic_inst_dump(unsigned long adr, long count, int praddr,
> dotted = 0;
> last_inst = inst;
> if (praddr)
> - printf(REG" %.8x", adr, inst);
> + printf(REG" %.8lx", adr, inst);
> printf("\t");
> dump_func(inst, adr);
> printf("\n");
> @@ -2860,7 +2863,7 @@ memdiffs(unsigned char *p1, unsigned char *p2, unsigned nb, unsigned maxpr)
> for( n = nb; n > 0; --n )
> if( *p1++ != *p2++ )
> if( ++prt <= maxpr )
> - printf("%.16x %.2x # %.16x %.2x\n", p1 - 1,
> + printf("%p %.2x # %p %.2x\n", p1 - 1,
> p1[-1], p2 - 1, p2[-1]);
> if( prt > maxpr )
> printf("Total of %d differences\n", prt);
> @@ -2920,13 +2923,13 @@ memzcan(void)
> if (ok && !ook) {
> printf("%.8x .. ", a);
> } else if (!ok && ook)
> - printf("%.8x\n", a - mskip);
> + printf("%.8lx\n", a - mskip);
> ook = ok;
> if (a + mskip < a)
> break;
> }
> if (ook)
> - printf("%.8x\n", a - mskip);
> + printf("%.8lx\n", a - mskip);
> }
>
> static void show_task(struct task_struct *tsk)
> @@ -3010,13 +3013,13 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - printf("pgd @ 0x%016lx\n", pgdir);
> + printf("pgd @ 0x%p\n", pgdir);
>
> if (pgd_huge(*pgdp)) {
> format_pte(pgdp, pgd_val(*pgdp));
> return;
> }
> - printf("pgdp @ 0x%016lx = 0x%016lx\n", pgdp, pgd_val(*pgdp));
> + printf("pgdp @ 0x%p = 0x%016lx\n", pgdp, pgd_val(*pgdp));
>
> pudp = pud_offset(pgdp, addr);
>
> @@ -3030,7 +3033,7 @@ static void show_pte(unsigned long addr)
> return;
> }
>
> - printf("pudp @ 0x%016lx = 0x%016lx\n", pudp, pud_val(*pudp));
> + printf("pudp @ 0x%p = 0x%016lx\n", pudp, pud_val(*pudp));
>
> pmdp = pmd_offset(pudp, addr);
>
> @@ -3043,7 +3046,7 @@ static void show_pte(unsigned long addr)
> format_pte(pmdp, pmd_val(*pmdp));
> return;
> }
> - printf("pmdp @ 0x%016lx = 0x%016lx\n", pmdp, pmd_val(*pmdp));
> + printf("pmdp @ 0x%p = 0x%016lx\n", pmdp, pmd_val(*pmdp));
>
> ptep = pte_offset_map(pmdp, addr);
> if (pte_none(*ptep)) {
> @@ -3847,19 +3850,19 @@ static void dump_spu_fields(struct spu *spu)
> DUMP_FIELD(spu, "0x%lx", ls_size);
> DUMP_FIELD(spu, "0x%x", node);
> DUMP_FIELD(spu, "0x%lx", flags);
> - DUMP_FIELD(spu, "%d", class_0_pending);
> - DUMP_FIELD(spu, "0x%lx", class_0_dar);
> - DUMP_FIELD(spu, "0x%lx", class_1_dar);
> - DUMP_FIELD(spu, "0x%lx", class_1_dsisr);
> - DUMP_FIELD(spu, "0x%lx", irqs[0]);
> - DUMP_FIELD(spu, "0x%lx", irqs[1]);
> - DUMP_FIELD(spu, "0x%lx", irqs[2]);
> + DUMP_FIELD(spu, "%llu", class_0_pending);
> + DUMP_FIELD(spu, "0x%llx", class_0_dar);
> + DUMP_FIELD(spu, "0x%llx", class_1_dar);
> + DUMP_FIELD(spu, "0x%llx", class_1_dsisr);
> + DUMP_FIELD(spu, "0x%x", irqs[0]);
> + DUMP_FIELD(spu, "0x%x", irqs[1]);
> + DUMP_FIELD(spu, "0x%x", irqs[2]);
> DUMP_FIELD(spu, "0x%x", slb_replace);
> DUMP_FIELD(spu, "%d", pid);
> DUMP_FIELD(spu, "0x%p", mm);
> DUMP_FIELD(spu, "0x%p", ctx);
> DUMP_FIELD(spu, "0x%p", rq);
> - DUMP_FIELD(spu, "0x%p", timestamp);
> + DUMP_FIELD(spu, "0x%llx", timestamp);
> DUMP_FIELD(spu, "0x%lx", problem_phys);
> DUMP_FIELD(spu, "0x%p", problem);
> DUMP_VALUE("0x%x", problem->spu_runcntl_RW,
> @@ -3890,7 +3893,7 @@ static void dump_spu_ls(unsigned long num, int subcmd)
> __delay(200);
> } else {
> catch_memory_errors = 0;
> - printf("*** Error: accessing spu info for spu %d\n", num);
> + printf("*** Error: accessing spu info for spu %ld\n", num);
> return;
> }
> catch_memory_errors = 0;
> --
> 2.11.0
>