aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2013-09-02 05:20:00 -0400
committerHeiko Carstens <heiko.carstens@de.ibm.com>2013-09-04 11:19:07 -0400
commit8237ac3c4c827a187538fab1ca370e34addc922d (patch)
tree3516de56381f5bfff7cb8fd5c4620bbe5b458732 /arch/s390
parentae6834c1e4bdfede56eee815595a19c690fddcae (diff)
s390/dumpstack: convert print_symbol to %pSR
This is the same as what other architectures did. The change has also the advantage that there won't be any interleaving messages between printk() and print_symbol(). Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'arch/s390')
-rw-r--r--arch/s390/kernel/dumpstack.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/arch/s390/kernel/dumpstack.c b/arch/s390/kernel/dumpstack.c
index 87acc38f73c6..99e7f6035895 100644
--- a/arch/s390/kernel/dumpstack.c
+++ b/arch/s390/kernel/dumpstack.c
@@ -40,14 +40,15 @@ __show_trace(unsigned long sp, unsigned long low, unsigned long high)
40{ 40{
41 struct stack_frame *sf; 41 struct stack_frame *sf;
42 struct pt_regs *regs; 42 struct pt_regs *regs;
43 unsigned long addr;
43 44
44 while (1) { 45 while (1) {
45 sp = sp & PSW_ADDR_INSN; 46 sp = sp & PSW_ADDR_INSN;
46 if (sp < low || sp > high - sizeof(*sf)) 47 if (sp < low || sp > high - sizeof(*sf))
47 return sp; 48 return sp;
48 sf = (struct stack_frame *) sp; 49 sf = (struct stack_frame *) sp;
49 printk("([<%016lx>] ", sf->gprs[8] & PSW_ADDR_INSN); 50 addr = sf->gprs[8] & PSW_ADDR_INSN;
50 print_symbol("%s)\n", sf->gprs[8] & PSW_ADDR_INSN); 51 printk("([<%016lx>] %pSR)\n", addr, (void *)addr);
51 /* Follow the backchain. */ 52 /* Follow the backchain. */
52 while (1) { 53 while (1) {
53 low = sp; 54 low = sp;
@@ -57,16 +58,16 @@ __show_trace(unsigned long sp, unsigned long low, unsigned long high)
57 if (sp <= low || sp > high - sizeof(*sf)) 58 if (sp <= low || sp > high - sizeof(*sf))
58 return sp; 59 return sp;
59 sf = (struct stack_frame *) sp; 60 sf = (struct stack_frame *) sp;
60 printk(" [<%016lx>] ", sf->gprs[8] & PSW_ADDR_INSN); 61 addr = sf->gprs[8] & PSW_ADDR_INSN;
61 print_symbol("%s\n", sf->gprs[8] & PSW_ADDR_INSN); 62 printk(" [<%016lx>] %pSR\n", addr, (void *)addr);
62 } 63 }
63 /* Zero backchain detected, check for interrupt frame. */ 64 /* Zero backchain detected, check for interrupt frame. */
64 sp = (unsigned long) (sf + 1); 65 sp = (unsigned long) (sf + 1);
65 if (sp <= low || sp > high - sizeof(*regs)) 66 if (sp <= low || sp > high - sizeof(*regs))
66 return sp; 67 return sp;
67 regs = (struct pt_regs *) sp; 68 regs = (struct pt_regs *) sp;
68 printk(" [<%016lx>] ", regs->psw.addr & PSW_ADDR_INSN); 69 addr = regs->psw.addr & PSW_ADDR_INSN;
69 print_symbol("%s\n", regs->psw.addr & PSW_ADDR_INSN); 70 printk(" [<%016lx>] %pSR\n", addr, (void *)addr);
70 low = sp; 71 low = sp;
71 sp = regs->gprs[15]; 72 sp = regs->gprs[15];
72 } 73 }
@@ -128,8 +129,7 @@ static void show_last_breaking_event(struct pt_regs *regs)
128{ 129{
129#ifdef CONFIG_64BIT 130#ifdef CONFIG_64BIT
130 printk("Last Breaking-Event-Address:\n"); 131 printk("Last Breaking-Event-Address:\n");
131 printk(" [<%016lx>] ", regs->args[0] & PSW_ADDR_INSN); 132 printk(" [<%016lx>] %pSR\n", regs->args[0], (void *)regs->args[0]);
132 print_symbol("%s\n", regs->args[0] & PSW_ADDR_INSN);
133#endif 133#endif
134} 134}
135 135
@@ -143,10 +143,10 @@ void show_registers(struct pt_regs *regs)
143 char *mode; 143 char *mode;
144 144
145 mode = user_mode(regs) ? "User" : "Krnl"; 145 mode = user_mode(regs) ? "User" : "Krnl";
146 printk("%s PSW : %p %p", 146 printk("%s PSW : %p %p (%pSR)\n",
147 mode, (void *) regs->psw.mask, 147 mode, (void *) regs->psw.mask,
148 (void *) regs->psw.addr,
148 (void *) regs->psw.addr); 149 (void *) regs->psw.addr);
149 print_symbol(" (%s)\n", regs->psw.addr & PSW_ADDR_INSN);
150 printk(" R:%x T:%x IO:%x EX:%x Key:%x M:%x W:%x " 150 printk(" R:%x T:%x IO:%x EX:%x Key:%x M:%x W:%x "
151 "P:%x AS:%x CC:%x PM:%x", mask_bits(regs, PSW_MASK_PER), 151 "P:%x AS:%x CC:%x PM:%x", mask_bits(regs, PSW_MASK_PER),
152 mask_bits(regs, PSW_MASK_DAT), mask_bits(regs, PSW_MASK_IO), 152 mask_bits(regs, PSW_MASK_DAT), mask_bits(regs, PSW_MASK_IO),