All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/19] Start using __printf attribute (single commit series)
@ 2018-03-16 11:02 Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 01/19] xmon: Use __printf markup to silence compiler Mathieu Malaterre
                   ` (18 more replies)
  0 siblings, 19 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

This series is part of my warning fixes branch. When preparing the patch, I
figured that sending it as single patch would make the reviewing task fairly
difficult. I decided to split it into fake commits and group them by warning
types to make reviewing much easier. Obviously this series is not meant to be
applied as-is but squashed into a single commit (maybe two if I move the gcc
attribute as second patch). I saw that my previous patches were applied with a
trimmed warning context to reduce the level of noise, I'll keep that in mind
when preparing the squashed commit.

This series has only been compiled tested using ppc32_defconfig and
ppc64_defconfig, hopefully those two cover all combinations for this piece of
code. I am not sure what (if anything?) I am going to break when replacing
%016lx with %p on 32 bits arch, the other changes seems more direct. I am open
for suggestion for the last commit (maybe combine the two function-like macros
DUMP & DUMPPTR into a single one with an extra parameter).

Mathieu Malaterre (19):
  xmon: Use __printf markup to silence compiler
  ppc32: change %x into %lx
  ppc32: Change %.16x into %p
  ppc32: change %lx into %p
  ppc32: change %lx into %tx (ptrdiff_t)
  ppc64: change %lx into %llx
  ppc64: change %ld into %d
  ppc64: change %x into %lx
  ppc64: change %016lx into %p
  ppc64: change %lx into %p
  ppc64: change %lx into %x
  ppc64: change %lx into %llx
  ppc64: change %llx into %lx
  ppc64: change %p into %llx
  ppc64: change %d into %ld
  ppc64: Change %d into %lu
  ppc64: change %d into %llu
  ppc64: change %ld into %d
  ppc64: Handle %p format in DUMPPTR() function-like macro

 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(-)

-- 
2.11.0

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH 01/19] xmon: Use __printf markup to silence compiler
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-17 23:33   ` kbuild test robot
                     ` (2 more replies)
  2018-03-16 11:02 ` [PATCH 02/19] ppc32: change %x into %lx Mathieu Malaterre
                   ` (17 subsequent siblings)
  18 siblings, 3 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

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(-)

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
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 02/19] ppc32: change %x into %lx
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 01/19] xmon: Use __printf markup to silence compiler Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 03/19] ppc32: Change %.16x into %p Mathieu Malaterre
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../arch/powerpc/xmon/xmon.c: In function ‘memdiffs’:
../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=]
     printf("%.16x %.2x # %.16x %.2x\n", p1 - 1,
                 ^
../arch/powerpc/xmon/xmon.c:2866: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,
                              ^
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index ee113a6e008c..ee7a8c9a042b 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -1671,7 +1671,7 @@ static void prregs(struct pt_regs *fp)
 	}
 #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");
@@ -2728,7 +2728,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");
@@ -2920,13 +2920,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)
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 03/19] ppc32: Change %.16x into %p
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 01/19] xmon: Use __printf markup to silence compiler Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 02/19] ppc32: change %x into %lx Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 04/19] ppc32: change %lx " Mathieu Malaterre
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
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,
                 ^
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,
                              ^
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index ee7a8c9a042b..f155f030550f 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -2860,7 +2860,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);
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 04/19] ppc32: change %lx into %p
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (2 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 03/19] ppc32: Change %.16x into %p Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 05/19] ppc32: change %lx into %tx (ptrdiff_t) Mathieu Malaterre
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

also remove extra fp->link since no formatter associated.

  CC      arch/powerpc/xmon/xmon.o
../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);
                          ^
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index f155f030550f..15011be7a051 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -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,7 +1620,7 @@ 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",
 	       local_paca, local_paca->irq_soft_mask, local_paca->irq_happened);
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 05/19] ppc32: change %lx into %tx (ptrdiff_t)
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (3 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 04/19] ppc32: change %lx " Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 06/19] ppc64: change %lx into %llx Mathieu Malaterre
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
arch/powerpc/xmon/xmon.c: In function ‘xmon_core’:
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=]
    printf("Stopped at breakpoint %lx (", BP_NUM(bp));
                                    ^
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));
                                ^
cc1: all warnings being treated as errors

and

  CC      arch/powerpc/xmon/xmon.o
../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),
               ^
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 15011be7a051..0d74c0d1a0bf 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))
@@ -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");
 			}
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 06/19] ppc64: change %lx into %llx
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (4 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 05/19] ppc32: change %lx into %tx (ptrdiff_t) Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 07/19] ppc64: change %ld into %d Mathieu Malaterre
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../arch/powerpc/xmon/xmon.c: In function ‘dump_by_size’:
../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=]
    printf("%0*lx", size * 2, val);
                ^
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 0d74c0d1a0bf..738888e6a927 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -2564,7 +2564,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");
 	}
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 07/19] ppc64: change %ld into %d
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (5 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 06/19] ppc64: change %lx into %llx Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 08/19] ppc64: change %x into %lx Mathieu Malaterre
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../arch/powerpc/xmon/xmon.c: In function ‘excprint’:
../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",
                         ^
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 738888e6a927..6117164cb5ba 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -1626,7 +1626,7 @@ static void excprint(struct pt_regs *fp)
 	       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);
 	}
 
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 08/19] ppc64: change %x into %lx
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (6 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 07/19] ppc64: change %ld into %d Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 09/19] ppc64: change %016lx into %p Mathieu Malaterre
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../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);
                  ^
../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);
                   ^
../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",
                                                      ^
../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",
                                                      ^
../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",
                                                      ^
../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",
                                                      ^
../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",
                                                      ^
../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",
                                                      ^
../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",
                      ^
../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",
                                  ^
../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",
                                               ^
../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",
                                                              ^
../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",
                                                      ^
../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",
                                                      ^
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/spu-dis.c |  2 +-
 arch/powerpc/xmon/xmon.c    | 22 +++++++++++-----------
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/arch/powerpc/xmon/spu-dis.c b/arch/powerpc/xmon/spu-dis.c
index e5f89837c82e..6b83b680b9f6 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
     {
diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 6117164cb5ba..0e4dcdf12f9e 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -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();
@@ -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));
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 09/19] ppc64: change %016lx into %p
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (7 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 08/19] ppc64: change %x into %lx Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 10/19] ppc64: change %lx " Mathieu Malaterre
                   ` (9 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../arch/powerpc/xmon/xmon.c: In function ‘show_pte’:
../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=]
  printf("pgd  @ 0x%016lx\n", pgdir);
                        ^
../arch/powerpc/xmon/xmon.c:3022:24: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘pgd_t * {aka struct <anonymous> *}’ [-Werror=format=]
  printf("pgdp @ 0x%016lx = 0x%016lx\n", pgdp, pgd_val(*pgdp));
                        ^
../arch/powerpc/xmon/xmon.c:3036:24: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘pud_t * {aka struct <anonymous> *}’ [-Werror=format=]
  printf("pudp @ 0x%016lx = 0x%016lx\n", pudp, pud_val(*pudp));
                        ^
../arch/powerpc/xmon/xmon.c:3049:24: error: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘pmd_t * {aka struct <anonymous> *}’ [-Werror=format=]
  printf("pmdp @ 0x%016lx = 0x%016lx\n", pmdp, pmd_val(*pmdp));
                        ^
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 0e4dcdf12f9e..69152f00d3fc 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3010,13 +3010,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 +3030,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 +3043,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)) {
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 10/19] ppc64: change %lx into %p
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (8 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 09/19] ppc64: change %016lx into %p Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 11/19] ppc64: change %lx into %x Mathieu Malaterre
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../arch/powerpc/xmon/xmon.c: In function ‘excprint’:
../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",
                          ^
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 69152f00d3fc..e706139030ad 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -1622,7 +1622,7 @@ static void excprint(struct pt_regs *fp)
 
 	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) {
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 11/19] ppc64: change %lx into %x
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (9 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 10/19] ppc64: change %lx " Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 12/19] ppc64: change %lx into %llx Mathieu Malaterre
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../arch/powerpc/xmon/xmon.c: In function ‘dump_one_paca’:
../arch/powerpc/xmon/xmon.c:2380: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]);
                                           ^
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index e706139030ad..7eb656274ea7 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -2374,7 +2374,7 @@ static void dump_one_paca(int cpu)
 	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");
 #endif
@@ -3851,9 +3851,9 @@ static void dump_spu_fields(struct spu *spu)
 	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, "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);
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 12/19] ppc64: change %lx into %llx
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (10 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 11/19] ppc64: change %lx into %x Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 13/19] ppc64: change %llx into %lx Mathieu Malaterre
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../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:2347:2: note: in expansion of macro ‘DUMP’
  DUMP(p, kernel_toc, "lx");
  ^~~~
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 7eb656274ea7..96247ac91a86 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -2341,9 +2341,9 @@ static void dump_one_paca(int cpu)
 
 	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, kernel_toc, "llx");
+	DUMP(p, kernelbase, "llx");
+	DUMP(p, kernel_msr, "llx");
 	DUMP(p, emergency_sp, "px");
 #ifdef CONFIG_PPC_BOOK3S_64
 	DUMP(p, nmi_emergency_sp, "px");
@@ -2352,7 +2352,7 @@ static void dump_one_paca(int cpu)
 	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,7 +2367,7 @@ 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);
 		}
 	}
@@ -2388,10 +2388,10 @@ static void dump_one_paca(int cpu)
 	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, 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");
@@ -3848,9 +3848,9 @@ static void dump_spu_fields(struct spu *spu)
 	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%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]);
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 13/19] ppc64: change %llx into %lx
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (11 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 12/19] ppc64: change %lx into %llx Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 14/19] ppc64: change %p into %llx Mathieu Malaterre
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../arch/powerpc/xmon/xmon.c: In function ‘dump_one_paca’:
../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:2417:2: note: in expansion of macro ‘DUMP’
  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:2418:2: note: in expansion of macro ‘DUMP’
  DUMP(p, accounting.stime, "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:2419:2: note: in expansion of macro ‘DUMP’
  DUMP(p, accounting.utime_scaled, "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:2420:2: note: in expansion of macro ‘DUMP’
  DUMP(p, accounting.starttime, "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:2421:2: note: in expansion of macro ‘DUMP’
  DUMP(p, accounting.starttime_user, "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:2422:2: note: in expansion of macro ‘DUMP’
  DUMP(p, accounting.startspurr, "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:2423:2: note: in expansion of macro ‘DUMP’
  DUMP(p, accounting.utime_sspurr, "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:2424:2: note: in expansion of macro ‘DUMP’
  DUMP(p, accounting.steal_time, "llx");
  ^~~~
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 96247ac91a86..61f5e09367d0 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -2411,14 +2411,14 @@ static void dump_one_paca(int cpu)
 	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;
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 14/19] ppc64: change %p into %llx
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (12 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 13/19] ppc64: change %llx into %lx Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 15/19] ppc64: change %d into %ld Mathieu Malaterre
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../arch/powerpc/xmon/xmon.c: In function ‘dump_spu_fields’:
../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=]
   printf("  %-*s = "format"\n", DUMP_WIDTH,  \
          ^
../arch/powerpc/xmon/xmon.c:3840:2: note: in expansion of macro ‘DUMP_VALUE’
  DUMP_VALUE(format, field, obj->field)
  ^~~~~~~~~~
../arch/powerpc/xmon/xmon.c:3865:2: note: in expansion of macro ‘DUMP_FIELD’
  DUMP_FIELD(spu, "0x%p", timestamp);
  ^~~~~~~~~~
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 61f5e09367d0..6b5b5318099d 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3859,7 +3859,7 @@ static void dump_spu_fields(struct spu *spu)
 	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,
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 15/19] ppc64: change %d into %ld
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (13 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 14/19] ppc64: change %p into %llx Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 16/19] ppc64: Change %d into %lu Mathieu Malaterre
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../arch/powerpc/xmon/xmon.c: In function ‘dump_spu_ls’:
../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=]
   printf("*** Error: accessing spu info for spu %d\n", num);
                                                  ^
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 6b5b5318099d..c9a44962d3c9 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3890,7 +3890,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

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 16/19] ppc64: Change %d into %lu
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (14 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 15/19] ppc64: change %d into %ld Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 17/19] ppc64: change %d into %llu Mathieu Malaterre
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/spu-dis.o
../arch/powerpc/xmon/spu-dis.c: In function ‘print_insn_spu’:
../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=]
        printf("$%d",
                  ^
../arch/powerpc/xmon/spu-dis.c:141:18: error: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Werror=format=]
        printf("$%d",
                  ^
../arch/powerpc/xmon/spu-dis.c:145:18: error: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Werror=format=]
        printf("$%d",
                  ^
../arch/powerpc/xmon/spu-dis.c:149:18: error: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Werror=format=]
        printf("$%d",
                  ^
../arch/powerpc/xmon/spu-dis.c:153:20: error: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Werror=format=]
        printf("$sp%d",
                    ^
../arch/powerpc/xmon/spu-dis.c:157:20: error: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Werror=format=]
        printf("$ch%d",
                    ^
../arch/powerpc/xmon/spu-dis.c:165:17: error: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Werror=format=]
        printf("%d",
                 ^
../arch/powerpc/xmon/spu-dis.c:169:17: error: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Werror=format=]
        printf("%d",
                 ^
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/spu-dis.c | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/arch/powerpc/xmon/spu-dis.c b/arch/powerpc/xmon/spu-dis.c
index 6b83b680b9f6..4cbc7da88524 100644
--- a/arch/powerpc/xmon/spu-dis.c
+++ b/arch/powerpc/xmon/spu-dis.c
@@ -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:
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 17/19] ppc64: change %d into %llu
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (15 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 16/19] ppc64: Change %d into %lu Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 18/19] ppc64: change %ld into %d Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 19/19] ppc64: Handle %p format in DUMPPTR() function-like macro Mathieu Malaterre
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../arch/powerpc/xmon/xmon.c: In function ‘dump_spu_fields’:
../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=]
   printf("  %-*s = "format"\n", DUMP_WIDTH,  \
          ^
../arch/powerpc/xmon/xmon.c:3840:2: note: in expansion of macro ‘DUMP_VALUE’
  DUMP_VALUE(format, field, obj->field)
  ^~~~~~~~~~
../arch/powerpc/xmon/xmon.c:3853:2: note: in expansion of macro ‘DUMP_FIELD’
  DUMP_FIELD(spu, "%d", class_0_pending);
  ^~~~~~~~~~
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index c9a44962d3c9..4479245c6361 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -3847,7 +3847,7 @@ 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, "%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);
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 18/19] ppc64: change %ld into %d
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (16 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 17/19] ppc64: change %d into %llu Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  2018-03-16 11:02 ` [PATCH 19/19] ppc64: Handle %p format in DUMPPTR() function-like macro Mathieu Malaterre
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../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",
                 ^
../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",
           ^~~~~~~~~~~
../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",
                 ^
../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",
           ^~~~~~~~~~~
cc1: all warnings being treated as errors

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index 4479245c6361..a87f14a24849 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -1662,11 +1662,11 @@ 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
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH 19/19] ppc64: Handle %p format in DUMPPTR() function-like macro
  2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
                   ` (17 preceding siblings ...)
  2018-03-16 11:02 ` [PATCH 18/19] ppc64: change %ld into %d Mathieu Malaterre
@ 2018-03-16 11:02 ` Mathieu Malaterre
  18 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-16 11:02 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, Mathieu Malaterre

  CC      arch/powerpc/xmon/xmon.o
../arch/powerpc/xmon/xmon.c: In function ‘dump_one_paca’:
../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");

while at it fix warning reported by checkpatch:

WARNING: macros should not use a trailing semicolon

Signed-off-by: Mathieu Malaterre <malat@debian.org>
---
 arch/powerpc/xmon/xmon.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
index a87f14a24849..edd7ea85272f 100644
--- a/arch/powerpc/xmon/xmon.c
+++ b/arch/powerpc/xmon/xmon.c
@@ -2337,17 +2337,20 @@ 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, "llx");
 	DUMP(p, kernelbase, "llx");
 	DUMP(p, kernel_msr, "llx");
-	DUMP(p, emergency_sp, "px");
+	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");
@@ -2376,7 +2379,7 @@ static void dump_one_paca(int cpu)
 	for (i = 0; i < SLB_CACHE_ENTRIES; 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,7 +2390,7 @@ static void dump_one_paca(int cpu)
 	DUMP(p, crit_kstack, "px");
 	DUMP(p, dbg_kstack, "px");
 #endif
-	DUMP(p, __current, "px");
+	DUMPPTR(p, __current, "p");
 	DUMP(p, kstack, "llx");
 	printf(" kstack_base          = 0x%016llx\n", p->kstack & ~(THREAD_SIZE - 1));
 	DUMP(p, stab_rr, "llx");
@@ -2405,7 +2408,7 @@ 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");
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [PATCH 01/19] xmon: Use __printf markup to silence compiler
  2018-03-16 11:02 ` [PATCH 01/19] xmon: Use __printf markup to silence compiler Mathieu Malaterre
@ 2018-03-17 23:33   ` kbuild test robot
  2018-03-18  0:27   ` kbuild test robot
  2018-03-25  9:06   ` [PATCH v2] " Mathieu Malaterre
  2 siblings, 0 replies; 26+ messages in thread
From: kbuild test robot @ 2018-03-17 23:33 UTC (permalink / raw)
  To: Mathieu Malaterre
  Cc: kbuild-all, Michael Ellerman, Mathieu Malaterre, Paul Mackerras,
	linuxppc-dev

[-- Attachment #1: Type: text/plain, Size: 45465 bytes --]

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 24150 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH 01/19] xmon: Use __printf markup to silence compiler
  2018-03-16 11:02 ` [PATCH 01/19] xmon: Use __printf markup to silence compiler Mathieu Malaterre
  2018-03-17 23:33   ` kbuild test robot
@ 2018-03-18  0:27   ` kbuild test robot
  2018-03-25  9:06   ` [PATCH v2] " Mathieu Malaterre
  2 siblings, 0 replies; 26+ messages in thread
From: kbuild test robot @ 2018-03-18  0:27 UTC (permalink / raw)
  To: Mathieu Malaterre
  Cc: kbuild-all, Michael Ellerman, Mathieu Malaterre, Paul Mackerras,
	linuxppc-dev

[-- Attachment #1: Type: text/plain, Size: 24420 bytes --]

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 15185 bytes --]

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH v2] xmon: Use __printf markup to silence compiler
  2018-03-16 11:02 ` [PATCH 01/19] xmon: Use __printf markup to silence compiler Mathieu Malaterre
  2018-03-17 23:33   ` kbuild test robot
  2018-03-18  0:27   ` kbuild test robot
@ 2018-03-25  9:06   ` Mathieu Malaterre
  2018-04-24 18:55       ` Mathieu Malaterre
  2018-05-25 11:41     ` [v2] " Michael Ellerman
  2 siblings, 2 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-03-25  9:06 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Mathieu Malaterre, Benjamin Herrenschmidt, Paul Mackerras,
	linuxppc-dev, linux-kernel

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@debian.org>
---
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

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [PATCH v2] xmon: Use __printf markup to silence compiler
  2018-03-25  9:06   ` [PATCH v2] " Mathieu Malaterre
@ 2018-04-24 18:55       ` Mathieu Malaterre
  2018-05-25 11:41     ` [v2] " Michael Ellerman
  1 sibling, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-04-24 18:55 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, LKML

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

On Sun, Mar 25, 2018 at 11:06 AM, Mathieu Malaterre <malat@debian.org> 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@debian.org>
> ---
> 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
>

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH v2] xmon: Use __printf markup to silence compiler
@ 2018-04-24 18:55       ` Mathieu Malaterre
  0 siblings, 0 replies; 26+ messages in thread
From: Mathieu Malaterre @ 2018-04-24 18:55 UTC (permalink / raw)
  To: Michael Ellerman
  Cc: Benjamin Herrenschmidt, Paul Mackerras, linuxppc-dev, LKML

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

On Sun, Mar 25, 2018 at 11:06 AM, Mathieu Malaterre <malat@debian.org> wrot=
e:
> Update the other prototype declarations in asm/xmon.h.
>
> Silence warnings (triggered at W=3D1) by adding relevant __printf attribu=
te.
> 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 c=
andidate for =E2=80=98gnu_printf=E2=80=99 format attribute [-Werror=3Dsugge=
st-attribute=3Dformat]
>
> In turn this uncovered the following (partial list) warnings (treated as
> errors with W=3D1):
>
>   arch/powerpc/xmon/xmon.c:2866:17: error: format =E2=80=98%x=E2=80=99 ex=
pects argument of type =E2=80=98unsigned int=E2=80=99, but argument 2 has t=
ype =E2=80=98unsigned char *=E2=80=99 [-Werror=3Dformat=3D]
>   arch/powerpc/xmon/xmon.c:1607:31: error: format =E2=80=98%lx=E2=80=99 e=
xpects argument of type =E2=80=98long unsigned int=E2=80=99, but argument 4=
 has type =E2=80=98struct pt_regs *=E2=80=99 [-Werror=3Dformat=3D]
>   arch/powerpc/xmon/xmon.c:1611:9: error: too many arguments for format [=
-Werror=3Dformat-extra-args]
>   arch/powerpc/xmon/xmon.c:1623:26: error: format =E2=80=98%lx=E2=80=99 e=
xpects argument of type =E2=80=98long unsigned int=E2=80=99, but argument 2=
 has type =E2=80=98struct task_struct *=E2=80=99 [-Werror=3Dformat=3D]
>   arch/powerpc/xmon/xmon.c:630:36: error: format =E2=80=98%lx=E2=80=99 ex=
pects argument of type =E2=80=98long unsigned int=E2=80=99, but argument 2 =
has type =E2=80=98int=E2=80=99 [-Werror=3Dformat=3D]
>   arch/powerpc/xmon/xmon.c:1392:15: error: format =E2=80=98%x=E2=80=99 ex=
pects argument of type =E2=80=98unsigned int=E2=80=99, but argument 2 has t=
ype =E2=80=98long int=E2=80=99 [-Werror=3Dformat=3D]
>   arch/powerpc/xmon/xmon.c:2570:16: error: format =E2=80=98%lx=E2=80=99 e=
xpects argument of type =E2=80=98long unsigned int=E2=80=99, but argument 3=
 has type =E2=80=98u64 {aka long long unsigned int}=E2=80=99 [-Werror=3Dfor=
mat=3D]
>   arch/powerpc/xmon/xmon.c:1629:25: error: format =E2=80=98%ld=E2=80=99 e=
xpects argument of type =E2=80=98long int=E2=80=99, but argument 2 has type=
 =E2=80=98pid_t {aka int}=E2=80=99 [-Werror=3Dformat=3D]
>   arch/powerpc/xmon/xmon.c:1168:18: error: format =E2=80=98%x=E2=80=99 ex=
pects argument of type =E2=80=98unsigned int=E2=80=99, but argument 2 has t=
ype =E2=80=98long unsigned int=E2=80=99 [-Werror=3Dformat=3D]
>   arch/powerpc/xmon/xmon.c:3016:24: error: format =E2=80=98%lx=E2=80=99 e=
xpects argument of type =E2=80=98long unsigned int=E2=80=99, but argument 2=
 has type =E2=80=98pgd_t * {aka struct <anonymous> *}=E2=80=99 [-Werror=3Df=
ormat=3D]
>   arch/powerpc/xmon/xmon.c:2339:9: error: format =E2=80=98%lx=E2=80=99 ex=
pects argument of type =E2=80=98long unsigned int=E2=80=99, but argument 5 =
has type =E2=80=98u64 {aka long long unsigned int}=E2=80=99 [-Werror=3Dform=
at=3D]
>   arch/powerpc/xmon/xmon.c:2339:9: error: format =E2=80=98%llx=E2=80=99 e=
xpects argument of type =E2=80=98long long unsigned int=E2=80=99, but argum=
ent 5 has type =E2=80=98long unsigned int=E2=80=99 [-Werror=3Dformat=3D]
>   arch/powerpc/xmon/xmon.c:3827:10: error: format =E2=80=98%p=E2=80=99 ex=
pects argument of type =E2=80=98void *=E2=80=99, but argument 4 has type =
=E2=80=98long long unsigned int=E2=80=99 [-Werror=3Dformat=3D]
>   arch/powerpc/xmon/xmon.c:3896:50: error: format =E2=80=98%d=E2=80=99 ex=
pects argument of type =E2=80=98int=E2=80=99, but argument 2 has type =E2=
=80=98long unsigned int=E2=80=99 [-Werror=3Dformat=3D]
>   arch/powerpc/xmon/spu-dis.c:137:18: error: format =E2=80=98%d=E2=80=99 =
expects argument of type =E2=80=98int=E2=80=99, but argument 2 has type =E2=
=80=98long unsigned int=E2=80=99 [-Werror=3Dformat=3D]
>   arch/powerpc/xmon/xmon.c:3827:10: error: format =E2=80=98%d=E2=80=99 ex=
pects argument of type =E2=80=98int=E2=80=99, but argument 4 has type =E2=
=80=98u64 {aka long long unsigned int}=E2=80=99 [-Werror=3Dformat=3D]
>   arch/powerpc/xmon/xmon.c:1665:17: error: format =E2=80=98%ld=E2=80=99 e=
xpects argument of type =E2=80=98long int=E2=80=99, but argument 2 has type=
 =E2=80=98int=E2=80=99 [-Werror=3Dformat=3D]
>   arch/powerpc/xmon/xmon.c:2339:9: error: '#' flag used with =E2=80=98%p=
=E2=80=99 gnu_printf format [-Werror=3Dformat=3D]
>
> Signed-off-by: Mathieu Malaterre <malat@debian.org>
> ---
> 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/x=
mon.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 mem=
addr)
>
>    if (index =3D=3D 0)
>      {
> -      printf(".long 0x%x", insn);
> +      printf(".long 0x%lx", insn);
>      }
>    else
>      {
> @@ -134,27 +134,27 @@ print_insn_spu (unsigned long insn, unsigned long m=
emaddr)
>           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 m=
emaddr)
>               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 fromip=
i)
>                 excprint(regs);
>                 bp =3D 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 =3D 0;
> @@ -1179,7 +1179,7 @@ static int cpu_cmd(void)
>                         /* take control back */
>                         mb();
>                         xmon_owner =3D 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 =3D 0;
>                 break;
> @@ -1389,7 +1389,7 @@ bpt_cmds(void)
>                         for (bp =3D 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": "t=
rap");
>                                 xmon_print_symbol(bp->address, "  ", "\n"=
);
>                         }
> @@ -1604,11 +1604,11 @@ static void excprint(struct pt_regs *fp)
>  #endif /* CONFIG_SMP */
>
>         trap =3D TRAP(fp);
> -       printf("Vector: %lx %s at [%lx]\n", fp->trap, getvecname(trap), f=
p);
> +       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 =3D 0x%lx\n", current);
> +       printf("  current =3D 0x%p\n", current);
>  #ifdef CONFIG_PPC64
> -       printf("  paca    =3D 0x%lx\t softe: %d\t irq_happened: 0x%02x\n"=
,
> +       printf("  paca    =3D 0x%p\t softe: %d\t irq_happened: 0x%02x\n",
>                local_paca, local_paca->irq_soft_mask, local_paca->irq_hap=
pened);
>  #endif
>         if (current) {
> -               printf("    pid   =3D %ld, comm =3D %s\n",
> +               printf("    pid   =3D %d, comm =3D %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 =3D 0; n < 16; ++n)
> -                       printf("R%.2ld =3D "REG"   R%.2ld =3D "REG"\n",
> +                       printf("R%.2d =3D "REG"   R%.2d =3D "REG"\n",
>                                n, fp->gpr[n], n+16, fp->gpr[n+16]);
>         } else {
>                 for (n =3D 0; n < 7; ++n)
> -                       printf("R%.2ld =3D "REG"   R%.2ld =3D "REG"\n",
> +                       printf("R%.2d =3D "REG"   R%.2d =3D "REG"\n",
>                                n, fp->gpr[n], n+7, fp->gpr[n+7]);
>         }
>  #else
>         for (n =3D 0; n < 32; ++n) {
> -               printf("R%.2d =3D %.8x%s", n, fp->gpr[n],
> +               printf("R%.2d =3D %.8lx%s", n, fp->gpr[n],
>                        (n & 3) =3D=3D 3? "\n": "   ");
>                 if (n =3D=3D 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   =3D %.16lx  srr1  =3D %.16lx dsisr  =3D %.8x\n",
> +       printf("srr0   =3D %.16lx  srr1  =3D %.16lx dsisr  =3D %.8lx\n",
>                 mfspr(SPRN_SRR0), mfspr(SPRN_SRR1), mfspr(SPRN_DSISR));
> -       printf("dscr   =3D %.16lx  ppr   =3D %.16lx pir    =3D %.8x\n",
> +       printf("dscr   =3D %.16lx  ppr   =3D %.16lx pir    =3D %.8lx\n",
>                 mfspr(SPRN_DSCR), mfspr(SPRN_PPR), mfspr(SPRN_PIR));
>         printf("amr    =3D %.16lx  uamor =3D %.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   =3D %.16lx  hdar  =3D %.16lx hdsisr =3D %.8x\n",
> +       printf("sdr1   =3D %.16lx  hdar  =3D %.16lx hdsisr =3D %.8lx\n",
>                 mfspr(SPRN_SDR1), mfspr(SPRN_HDAR), mfspr(SPRN_HDSISR));
>         printf("hsrr0  =3D %.16lx hsrr1  =3D %.16lx hdec   =3D %.16lx\n",
>                 mfspr(SPRN_HSRR0), mfspr(SPRN_HSRR1), mfspr(SPRN_HDEC));
> -       printf("lpcr   =3D %.16lx  pcr   =3D %.16lx lpidr  =3D %.8x\n",
> +       printf("lpcr   =3D %.16lx  pcr   =3D %.16lx lpidr  =3D %.8lx\n",
>                 mfspr(SPRN_LPCR), mfspr(SPRN_PCR), mfspr(SPRN_LPID));
>         printf("hsprg0 =3D %.16lx hsprg1 =3D %.16lx amor   =3D %.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  =3D %.16lx  tir   =3D %.16lx cir    =3D %.8x\n",
> +       printf("dpdes  =3D %.16lx  tir   =3D %.16lx cir    =3D %.8lx\n",
>                 mfspr(SPRN_DPDES), mfspr(SPRN_TIR), mfspr(SPRN_CIR));
>
> -       printf("fscr   =3D %.16lx  tar   =3D %.16lx pspb   =3D %.8x\n",
> +       printf("fscr   =3D %.16lx  tar   =3D %.16lx pspb   =3D %.8lx\n",
>                 mfspr(SPRN_FSCR), mfspr(SPRN_TAR), mfspr(SPRN_PSPB));
>
>         msr =3D mfmsr();
> @@ -1822,12 +1822,12 @@ static void dump_207_sprs(void)
>
>         printf("mmcr0  =3D %.16lx  mmcr1 =3D %.16lx mmcr2  =3D %.16lx\n",
>                 mfspr(SPRN_MMCR0), mfspr(SPRN_MMCR1), mfspr(SPRN_MMCR2));
> -       printf("pmc1   =3D %.8x pmc2 =3D %.8x  pmc3 =3D %.8x  pmc4   =3D =
%.8x\n",
> +       printf("pmc1   =3D %.8lx pmc2 =3D %.8lx  pmc3 =3D %.8lx  pmc4   =
=3D %.8lx\n",
>                 mfspr(SPRN_PMC1), mfspr(SPRN_PMC2),
>                 mfspr(SPRN_PMC3), mfspr(SPRN_PMC4));
> -       printf("mmcra  =3D %.16lx   siar =3D %.16lx pmc5   =3D %.8x\n",
> +       printf("mmcra  =3D %.16lx   siar =3D %.16lx pmc5   =3D %.8lx\n",
>                 mfspr(SPRN_MMCRA), mfspr(SPRN_SIAR), mfspr(SPRN_PMC5));
> -       printf("sdar   =3D %.16lx   sier =3D %.16lx pmc6   =3D %.8x\n",
> +       printf("sdar   =3D %.16lx   sier =3D %.16lx pmc6   =3D %.8lx\n",
>                 mfspr(SPRN_SDAR), mfspr(SPRN_SIER), mfspr(SPRN_PMC6));
>         printf("ebbhr  =3D %.16lx  ebbrr =3D %.16lx bescr  =3D %.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 =3D %#-*"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 =3D %-*"format"\t(0x%lx)\n", 20, #name, 18, paca->n=
ame, \
> +               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 =3D be64_to_cpu(p->slb_shadow_ptr->save_area[i].vsid=
);
>
>                 if (esid || vsid) {
> -                       printf(" slb_shadow[%d]:       =3D 0x%016lx 0x%01=
6lx\n",
> +                       printf(" slb_shadow[%d]:       =3D 0x%016llx 0x%0=
16llx\n",
>                                 i, esid, vsid);
>                 }
>         }
>         DUMP(p, vmalloc_sllp, "x");
>         DUMP(p, slb_cache_ptr, "x");
>         for (i =3D 0; i < SLB_CACHE_ENTRIES; i++)
> -               printf(" slb_cache[%d]:        =3D 0x%016lx\n", i, p->slb=
_cache[i]);
> +               printf(" slb_cache[%d]:        =3D 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          =3D 0x%016lx\n", p->kstack & ~(THRE=
AD_SIZE - 1));
> -       DUMP(p, stab_rr, "lx");
> -       DUMP(p, saved_r1, "lx");
> +       DUMPPTR(p, __current, "p");
> +       DUMP(p, kstack, "llx");
> +       printf(" kstack_base          =3D 0x%016llx\n", p->kstack & ~(THR=
EAD_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 =3D 0;
> @@ -2564,7 +2567,7 @@ static void dump_by_size(unsigned long addr, long c=
ount, int size)
>                         default: val =3D 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, in=
t praddr,
>                 dotted =3D 0;
>                 last_inst =3D 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, unsi=
gned nb, unsigned maxpr)
>         for( n =3D nb; n > 0; --n )
>                 if( *p1++ !=3D *p2++ )
>                         if( ++prt <=3D 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 =3D 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 =3D 0x%016lx\n", pgdp, pgd_val(*pgdp));
> +       printf("pgdp @ 0x%p =3D 0x%016lx\n", pgdp, pgd_val(*pgdp));
>
>         pudp =3D pud_offset(pgdp, addr);
>
> @@ -3030,7 +3033,7 @@ static void show_pte(unsigned long addr)
>                 return;
>         }
>
> -       printf("pudp @ 0x%016lx =3D 0x%016lx\n", pudp, pud_val(*pudp));
> +       printf("pudp @ 0x%p =3D 0x%016lx\n", pudp, pud_val(*pudp));
>
>         pmdp =3D 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 =3D 0x%016lx\n", pmdp, pmd_val(*pmdp));
> +       printf("pmdp @ 0x%p =3D 0x%016lx\n", pmdp, pmd_val(*pmdp));
>
>         ptep =3D 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 subc=
md)
>                 __delay(200);
>         } else {
>                 catch_memory_errors =3D 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 =3D 0;
> --
> 2.11.0
>

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [v2] xmon: Use __printf markup to silence compiler
  2018-03-25  9:06   ` [PATCH v2] " Mathieu Malaterre
  2018-04-24 18:55       ` Mathieu Malaterre
@ 2018-05-25 11:41     ` Michael Ellerman
  1 sibling, 0 replies; 26+ messages in thread
From: Michael Ellerman @ 2018-05-25 11:41 UTC (permalink / raw)
  To: Mathieu Malaterre
  Cc: Mathieu Malaterre, Paul Mackerras, linuxppc-dev, linux-kernel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 3731 bytes --]

On Sun, 2018-03-25 at 09:06:47 UTC, Mathieu Malaterre 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@debian.org>

Applied to powerpc next, thanks.

https://git.kernel.org/powerpc/c/e70d8f55268ba95f00c61857df2bab

cheers

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2018-05-25 11:41 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-16 11:02 [PATCH 00/19] Start using __printf attribute (single commit series) Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 01/19] xmon: Use __printf markup to silence compiler Mathieu Malaterre
2018-03-17 23:33   ` kbuild test robot
2018-03-18  0:27   ` kbuild test robot
2018-03-25  9:06   ` [PATCH v2] " Mathieu Malaterre
2018-04-24 18:55     ` Mathieu Malaterre
2018-04-24 18:55       ` Mathieu Malaterre
2018-05-25 11:41     ` [v2] " Michael Ellerman
2018-03-16 11:02 ` [PATCH 02/19] ppc32: change %x into %lx Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 03/19] ppc32: Change %.16x into %p Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 04/19] ppc32: change %lx " Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 05/19] ppc32: change %lx into %tx (ptrdiff_t) Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 06/19] ppc64: change %lx into %llx Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 07/19] ppc64: change %ld into %d Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 08/19] ppc64: change %x into %lx Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 09/19] ppc64: change %016lx into %p Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 10/19] ppc64: change %lx " Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 11/19] ppc64: change %lx into %x Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 12/19] ppc64: change %lx into %llx Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 13/19] ppc64: change %llx into %lx Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 14/19] ppc64: change %p into %llx Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 15/19] ppc64: change %d into %ld Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 16/19] ppc64: Change %d into %lu Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 17/19] ppc64: change %d into %llu Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 18/19] ppc64: change %ld into %d Mathieu Malaterre
2018-03-16 11:02 ` [PATCH 19/19] ppc64: Handle %p format in DUMPPTR() function-like macro Mathieu Malaterre

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.