s390/dumpstack: remove raw stack dump

Remove raw stack dumps that are printed before call traces in case of
a warning, or the 'l' sysrq trigger (show a stack backtrace for all
active CPUs).

Besides that a raw stack dump should not be shown for the 'l' sysrq
trigger the value of the dump is close to zero. That's also why we
don't print it in case of a panic since ages anymore. That this is
still printed on warnings is just a leftover. So get rid of this
completely.

The following won't be printed anymore with this change:

Stack:
       00000000bbc4fbc8 00000000bbc4fc58 0000000000000003 0000000000000000
       00000000bbc4fcf8 00000000bbc4fc70 00000000bbc4fc70 0000000000000020
       000000007fe00098 00000000bfe8be00 00000000bbc4fe94 000000000000000a
       000000000000000c 00000000bbc4fcc0 0000000000000000 0000000000000000
       000000000095b930 0000000000113366 00000000bbc4fc58 00000000bbc4fca0

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
This commit is contained in:
Heiko Carstens 2017-06-06 10:04:26 +02:00 committed by Martin Schwidefsky
parent e8ac01555d
commit 2b7b9817c2
1 changed files with 4 additions and 25 deletions

View File

@ -98,8 +98,10 @@ static int show_address(void *data, unsigned long address, int reliable)
return 0;
}
static void show_trace(struct task_struct *task, unsigned long sp)
void show_stack(struct task_struct *task, unsigned long *stack)
{
unsigned long sp = (unsigned long) stack;
if (!sp)
sp = task ? task->thread.ksp : current_stack_pointer();
printk("Call Trace:\n");
@ -109,29 +111,6 @@ static void show_trace(struct task_struct *task, unsigned long sp)
debug_show_held_locks(task);
}
void show_stack(struct task_struct *task, unsigned long *sp)
{
unsigned long *stack;
int i;
stack = sp;
if (!stack) {
if (!task)
stack = (unsigned long *)current_stack_pointer();
else
stack = (unsigned long *)task->thread.ksp;
}
printk(KERN_DEFAULT "Stack:\n");
for (i = 0; i < 20; i++) {
if (((addr_t) stack & (THREAD_SIZE-1)) == 0)
break;
if (i % 4 == 0)
printk(KERN_DEFAULT " ");
pr_cont("%016lx%c", *stack++, i % 4 == 3 ? '\n' : ' ');
}
show_trace(task, (unsigned long)sp);
}
static void show_last_breaking_event(struct pt_regs *regs)
{
printk("Last Breaking-Event-Address:\n");
@ -169,7 +148,7 @@ void show_regs(struct pt_regs *regs)
show_registers(regs);
/* Show stack backtrace if pt_regs is from kernel mode */
if (!user_mode(regs))
show_trace(NULL, regs->gprs[15]);
show_stack(NULL, (unsigned long *) regs->gprs[15]);
show_last_breaking_event(regs);
}