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

Signed-off-by: Joe Perches <j...@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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to