aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc/kernel/stacktrace.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/parisc/kernel/stacktrace.c')
-rw-r--r--arch/parisc/kernel/stacktrace.c15
1 files changed, 1 insertions, 14 deletions
diff --git a/arch/parisc/kernel/stacktrace.c b/arch/parisc/kernel/stacktrace.c
index 2fe914c5f533..ec5835e83a7a 100644
--- a/arch/parisc/kernel/stacktrace.c
+++ b/arch/parisc/kernel/stacktrace.c
@@ -16,20 +16,7 @@ static void dump_trace(struct task_struct *task, struct stack_trace *trace)
16{ 16{
17 struct unwind_frame_info info; 17 struct unwind_frame_info info;
18 18
19 /* initialize unwind info */ 19 unwind_frame_init_task(&info, task, NULL);
20 if (task == current) {
21 unsigned long sp;
22 struct pt_regs r;
23HERE:
24 asm volatile ("copy %%r30, %0" : "=r"(sp));
25 memset(&r, 0, sizeof(struct pt_regs));
26 r.iaoq[0] = (unsigned long)&&HERE;
27 r.gr[2] = (unsigned long)__builtin_return_address(0);
28 r.gr[30] = sp;
29 unwind_frame_init(&info, task, &r);
30 } else {
31 unwind_frame_init_from_blocked_task(&info, task);
32 }
33 20
34 /* unwind stack and save entries in stack_trace struct */ 21 /* unwind stack and save entries in stack_trace struct */
35 trace->nr_entries = 0; 22 trace->nr_entries = 0;