* [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).