linux-s390.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [TRIVIAL PATCH 00/26] treewide: Add and use vsprintf extension %pSR
@ 2012-12-12 18:18 Joe Perches
  2012-12-12 18:19 ` [TRIVIAL PATCH 12/26] s390: Convert print_symbol to %pSR Joe Perches
  2012-12-13  1:43 ` [TRIVIAL PATCH V2 " Joe Perches
  0 siblings, 2 replies; 4+ messages in thread
From: Joe Perches @ 2012-12-12 18:18 UTC (permalink / raw)
  To: Jiri Kosina, linux-doc, linuxppc-dev, cbe-oss-dev, linux-edac,
	user-mode-linux-devel, user-mode-linux-user, cluster-devel,
	linux-mm
  Cc: linux-kernel, linux-kernel, linux-alpha, linux-arm-kernel,
	linux-c6x-dev, linux-ia64, linux-m32r, linux-m32r-ja,
	linux-am33-list, linux, linux-s390, linux-sh, linux-xtensa

Remove the somewhat awkward uses of print_symbol and convert all the
existing uses to a new vsprintf pointer type of %pSR.

print_symbol can be interleaved when it is used in a sequence like:

	printk("something: ...");
	print_symbol("%s", addr);
	printk("\n");

Instead use:

	printk("something: %pSR\n", (void *)addr);

Add a new %p[SsFf]R vsprintf extension that can perform the same
symbol function/address/offset formatting as print_symbol to
reduce the number and styles of message logging functions.

print_symbol used __builtin_extract_return_addr for those architectures
like S/390 and SPARC that have offset or masked addressing.
%p[FfSs]R uses the same gcc __builtin

Joe Perches (26):
  vsprintf: Add extension %pSR - print_symbol replacement
  alpha: Convert print_symbol to %pSR
  arm: Convert print_symbol to %pSR
  arm64: Convert print_symbol to %pSR
  avr32: Convert print_symbol to %pSR
  c6x: Convert print_symbol to %pSR
  ia64: Convert print_symbol to %pSR
  m32r: Convert print_symbol to %pSR
  mn10300: Convert print_symbol to %pSR
  openrisc: Convert print_symbol to %pSR
  powerpc: Convert print_symbol to %pSR
  s390: Convert print_symbol to %pSR
  sh: Convert print_symbol to %pSR
  um: Convert print_symbol to %pSR
  unicore32: Convert print_symbol to %pSR
  x86: Convert print_symbol to %pSR
  xtensa: Convert print_symbol to %pSR
  drivers: base: Convert print_symbol to %pSR
  gfs2: Convert print_symbol to %pSR
  sysfs: Convert print_symbol to %pSR
  irq: Convert print_symbol to %pSR
  smp_processor_id: Convert print_symbol to %pSR
  mm: Convert print_symbol to %pSR
  xtensa: Convert print_symbol to %pSR
  x86: head_64.S: Use vsprintf extension %pSR not print_symbol
  kallsyms: Remove print_symbol

 Documentation/filesystems/sysfs.txt         |    4 +-
 Documentation/printk-formats.txt            |    2 +
 Documentation/zh_CN/filesystems/sysfs.txt   |    4 +-
 arch/alpha/kernel/traps.c                   |    8 ++----
 arch/arm/kernel/process.c                   |    4 +-
 arch/arm64/kernel/process.c                 |    4 +-
 arch/avr32/kernel/process.c                 |   25 ++++++-----------------
 arch/c6x/kernel/traps.c                     |    3 +-
 arch/ia64/kernel/process.c                  |   13 ++++-------
 arch/m32r/kernel/traps.c                    |    6 +---
 arch/mn10300/kernel/traps.c                 |    8 +++---
 arch/openrisc/kernel/traps.c                |    7 +----
 arch/powerpc/platforms/cell/spu_callbacks.c |   12 ++++------
 arch/s390/kernel/traps.c                    |   28 +++++++++++++++-----------
 arch/sh/kernel/process_32.c                 |    4 +-
 arch/um/kernel/sysrq.c                      |    6 +---
 arch/unicore32/kernel/process.c             |    5 ++-
 arch/x86/kernel/cpu/mcheck/mce.c            |   13 ++++++-----
 arch/x86/kernel/dumpstack.c                 |    5 +--
 arch/x86/kernel/head_64.S                   |    4 +-
 arch/x86/kernel/process_32.c                |    2 +-
 arch/x86/mm/mmio-mod.c                      |    4 +-
 arch/x86/um/sysrq_32.c                      |    9 ++-----
 arch/xtensa/kernel/traps.c                  |    6 +---
 drivers/base/core.c                         |    4 +-
 fs/gfs2/glock.c                             |    4 +-
 fs/gfs2/trans.c                             |    3 +-
 fs/sysfs/file.c                             |    4 +-
 include/linux/kallsyms.h                    |   18 -----------------
 kernel/irq/debug.h                          |   15 ++++++-------
 kernel/kallsyms.c                           |   11 ----------
 lib/smp_processor_id.c                      |    2 +-
 lib/vsprintf.c                              |   18 ++++++++++++----
 mm/memory.c                                 |    8 +++---
 mm/slab.c                                   |    8 ++----
 35 files changed, 117 insertions(+), 164 deletions(-)

-- 
1.7.8.112.g3fd21

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

* [TRIVIAL PATCH 12/26] s390: Convert print_symbol to %pSR
  2012-12-12 18:18 [TRIVIAL PATCH 00/26] treewide: Add and use vsprintf extension %pSR Joe Perches
@ 2012-12-12 18:19 ` Joe Perches
  2012-12-13  1:22   ` Joe Perches
  2012-12-13  1:43 ` [TRIVIAL PATCH V2 " Joe Perches
  1 sibling, 1 reply; 4+ messages in thread
From: Joe Perches @ 2012-12-12 18:19 UTC (permalink / raw)
  To: Jiri Kosina
  Cc: Martin Schwidefsky, Heiko Carstens, linux390, linux-s390,
	linux-kernel

Use the new vsprintf extension to avoid any possible
message interleaving.

Signed-off-by: Joe Perches <joe@perches.com>
---
 arch/s390/kernel/traps.c |   28 ++++++++++++++++------------
 1 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c
index 70ecfc5..f718e12 100644
--- a/arch/s390/kernel/traps.c
+++ b/arch/s390/kernel/traps.c
@@ -91,8 +91,9 @@ __show_trace(unsigned long sp, unsigned long low, unsigned long high)
 		if (sp < low || sp > high - sizeof(*sf))
 			return sp;
 		sf = (struct stack_frame *) sp;
-		printk("([<%016lx>] ", sf->gprs[8] & PSW_ADDR_INSN);
-		print_symbol("%s)\n", sf->gprs[8] & PSW_ADDR_INSN);
+		printk("([<%016lx>] %pSR\n",
+		       sf->gprs[8] & PSW_ADDR_INSN,
+		       (void *)(sf->gprs[8] & PSW_ADDR_INSN));
 		/* Follow the backchain. */
 		while (1) {
 			low = sp;
@@ -102,16 +103,18 @@ __show_trace(unsigned long sp, unsigned long low, unsigned long high)
 			if (sp <= low || sp > high - sizeof(*sf))
 				return sp;
 			sf = (struct stack_frame *) sp;
-			printk(" [<%016lx>] ", sf->gprs[8] & PSW_ADDR_INSN);
-			print_symbol("%s\n", sf->gprs[8] & PSW_ADDR_INSN);
+			printk(" [<%016lx>] %pSR\n",
+			       sf->gprs[8] & PSW_ADDR_INSN,
+			       (void *)(sf->gprs[8] & PSW_ADDR_INSN));
 		}
 		/* Zero backchain detected, check for interrupt frame. */
 		sp = (unsigned long) (sf + 1);
 		if (sp <= low || sp > high - sizeof(*regs))
 			return sp;
 		regs = (struct pt_regs *) sp;
-		printk(" [<%016lx>] ", regs->psw.addr & PSW_ADDR_INSN);
-		print_symbol("%s\n", regs->psw.addr & PSW_ADDR_INSN);
+		printk(" [<%016lx>] %pSR\n",
+		       regs->psw.addr & PSW_ADDR_INSN,
+		       (void *)(regs->psw.addr & PSW_ADDR_INSN));
 		low = sp;
 		sp = regs->gprs[15];
 	}
@@ -169,8 +172,9 @@ static void show_last_breaking_event(struct pt_regs *regs)
 {
 #ifdef CONFIG_64BIT
 	printk("Last Breaking-Event-Address:\n");
-	printk(" [<%016lx>] ", regs->args[0] & PSW_ADDR_INSN);
-	print_symbol("%s\n", regs->args[0] & PSW_ADDR_INSN);
+	printk(" [<%016lx>] %pSR\n",
+	       regs->args[0] & PSW_ADDR_INSN,
+	       (void *)(regs->args[0] & PSW_ADDR_INSN));
 #endif
 }
 
@@ -201,10 +205,10 @@ void show_registers(struct pt_regs *regs)
 	char *mode;
 
 	mode = user_mode(regs) ? "User" : "Krnl";
-	printk("%s PSW : %p %p",
-	       mode, (void *) regs->psw.mask,
-	       (void *) regs->psw.addr);
-	print_symbol(" (%s)\n", regs->psw.addr & PSW_ADDR_INSN);
+	printk("%s PSW : %p %p, %pSR\n",
+	       mode, (void *)regs->psw.mask,
+	       (void *)regs->psw.addr,
+	       (void *)(regs->psw.addr & PSW_ADDR_INSN));
 	printk("           R:%x T:%x IO:%x EX:%x Key:%x M:%x W:%x "
 	       "P:%x AS:%x CC:%x PM:%x", mask_bits(regs, PSW_MASK_PER),
 	       mask_bits(regs, PSW_MASK_DAT), mask_bits(regs, PSW_MASK_IO),
-- 
1.7.8.112.g3fd21

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

* Re: [TRIVIAL PATCH 12/26] s390: Convert print_symbol to %pSR
  2012-12-12 18:19 ` [TRIVIAL PATCH 12/26] s390: Convert print_symbol to %pSR Joe Perches
@ 2012-12-13  1:22   ` Joe Perches
  0 siblings, 0 replies; 4+ messages in thread
From: Joe Perches @ 2012-12-13  1:22 UTC (permalink / raw)
  To: Jiri Kosina
  Cc: Martin Schwidefsky, Heiko Carstens, linux390, linux-s390,
	linux-kernel

On Wed, 2012-12-12 at 10:19 -0800, Joe Perches wrote:
> Use the new vsprintf extension to avoid any possible
> message interleaving.
[]
> diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c
[]
> @@ -91,8 +91,9 @@ __show_trace(unsigned long sp, unsigned long low, unsigned long high)
>  		if (sp < low || sp > high - sizeof(*sf))
>  			return sp;
>  		sf = (struct stack_frame *) sp;
> -		printk("([<%016lx>] ", sf->gprs[8] & PSW_ADDR_INSN);
> -		print_symbol("%s)\n", sf->gprs[8] & PSW_ADDR_INSN);
> +		printk("([<%016lx>] %pSR\n",

Sorry, this is defective, it needs a trailing ')' like:

+		printk("([<%016lx>] %pSR)\n",

> @@ -102,16 +103,18 @@ __show_trace(unsigned long sp, unsigned long low, unsigned long high)
>  			if (sp <= low || sp > high - sizeof(*sf))
>  				return sp;
>  			sf = (struct stack_frame *) sp;
> -			printk(" [<%016lx>] ", sf->gprs[8] & PSW_ADDR_INSN);
> -			print_symbol("%s\n", sf->gprs[8] & PSW_ADDR_INSN);
> +			printk(" [<%016lx>] %pSR\n",

here too

I'll resubmit.

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

* [TRIVIAL PATCH V2 12/26] s390: Convert print_symbol to %pSR
  2012-12-12 18:18 [TRIVIAL PATCH 00/26] treewide: Add and use vsprintf extension %pSR Joe Perches
  2012-12-12 18:19 ` [TRIVIAL PATCH 12/26] s390: Convert print_symbol to %pSR Joe Perches
@ 2012-12-13  1:43 ` Joe Perches
  1 sibling, 0 replies; 4+ messages in thread
From: Joe Perches @ 2012-12-13  1:43 UTC (permalink / raw)
  To: Jiri Kosina
  Cc: Martin Schwidefsky, Heiko Carstens, linux390, linux-s390,
	linux-kernel

Use the new vsprintf extension to avoid any possible
message interleaving.

Signed-off-by: Joe Perches <joe@perches.com>
---

V2: Add missing parentheses, remove comma

 arch/s390/kernel/traps.c |   28 ++++++++++++++++------------
 1 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c
index 70ecfc5..f718e12 100644
--- a/arch/s390/kernel/traps.c
+++ b/arch/s390/kernel/traps.c
@@ -91,8 +91,9 @@ __show_trace(unsigned long sp, unsigned long low, unsigned long high)
 		if (sp < low || sp > high - sizeof(*sf))
 			return sp;
 		sf = (struct stack_frame *) sp;
-		printk("([<%016lx>] ", sf->gprs[8] & PSW_ADDR_INSN);
-		print_symbol("%s)\n", sf->gprs[8] & PSW_ADDR_INSN);
+		printk("([<%016lx>] %pSR)\n",
+		       sf->gprs[8] & PSW_ADDR_INSN,
+		       (void *)(sf->gprs[8] & PSW_ADDR_INSN));
 		/* Follow the backchain. */
 		while (1) {
 			low = sp;
@@ -102,16 +103,18 @@ __show_trace(unsigned long sp, unsigned long low, unsigned long high)
 			if (sp <= low || sp > high - sizeof(*sf))
 				return sp;
 			sf = (struct stack_frame *) sp;
-			printk(" [<%016lx>] ", sf->gprs[8] & PSW_ADDR_INSN);
-			print_symbol("%s\n", sf->gprs[8] & PSW_ADDR_INSN);
+			printk(" [<%016lx>] %pSR\n",
+			       sf->gprs[8] & PSW_ADDR_INSN,
+			       (void *)(sf->gprs[8] & PSW_ADDR_INSN));
 		}
 		/* Zero backchain detected, check for interrupt frame. */
 		sp = (unsigned long) (sf + 1);
 		if (sp <= low || sp > high - sizeof(*regs))
 			return sp;
 		regs = (struct pt_regs *) sp;
-		printk(" [<%016lx>] ", regs->psw.addr & PSW_ADDR_INSN);
-		print_symbol("%s\n", regs->psw.addr & PSW_ADDR_INSN);
+		printk(" [<%016lx>] %pSR\n",
+		       regs->psw.addr & PSW_ADDR_INSN,
+		       (void *)(regs->psw.addr & PSW_ADDR_INSN));
 		low = sp;
 		sp = regs->gprs[15];
 	}
@@ -169,8 +172,9 @@ static void show_last_breaking_event(struct pt_regs *regs)
 {
 #ifdef CONFIG_64BIT
 	printk("Last Breaking-Event-Address:\n");
-	printk(" [<%016lx>] ", regs->args[0] & PSW_ADDR_INSN);
-	print_symbol("%s\n", regs->args[0] & PSW_ADDR_INSN);
+	printk(" [<%016lx>] %pSR\n",
+	       regs->args[0] & PSW_ADDR_INSN,
+	       (void *)(regs->args[0] & PSW_ADDR_INSN));
 #endif
 }
 
@@ -201,10 +205,10 @@ void show_registers(struct pt_regs *regs)
 	char *mode;
 
 	mode = user_mode(regs) ? "User" : "Krnl";
-	printk("%s PSW : %p %p",
-	       mode, (void *) regs->psw.mask,
-	       (void *) regs->psw.addr);
-	print_symbol(" (%s)\n", regs->psw.addr & PSW_ADDR_INSN);
+	printk("%s PSW : %p %p (%pSR)\n",
+	       mode, (void *)regs->psw.mask,
+	       (void *)regs->psw.addr,
+	       (void *)(regs->psw.addr & PSW_ADDR_INSN));
 	printk("           R:%x T:%x IO:%x EX:%x Key:%x M:%x W:%x "
 	       "P:%x AS:%x CC:%x PM:%x", mask_bits(regs, PSW_MASK_PER),
 	       mask_bits(regs, PSW_MASK_DAT), mask_bits(regs, PSW_MASK_IO),
-- 
1.7.8.112.g3fd21

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

end of thread, other threads:[~2012-12-13  1:43 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-12-12 18:18 [TRIVIAL PATCH 00/26] treewide: Add and use vsprintf extension %pSR Joe Perches
2012-12-12 18:19 ` [TRIVIAL PATCH 12/26] s390: Convert print_symbol to %pSR Joe Perches
2012-12-13  1:22   ` Joe Perches
2012-12-13  1:43 ` [TRIVIAL PATCH V2 " Joe Perches

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).