From 0dafafc3ef42bad34fd446725cb9778c3bdd83a8 Mon Sep 17 00:00:00 2001 From: Vineet Gupta Date: Fri, 6 Sep 2013 14:18:17 +0530 Subject: ARC: Add support for irqflags tracing and lockdep Lockdep required a small fix to stacktrace API which was incorrectly unwindign out of __switch_to for the current call frame. Signed-off-by: Vineet Gupta --- arch/arc/kernel/stacktrace.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'arch/arc/kernel/stacktrace.c') diff --git a/arch/arc/kernel/stacktrace.c b/arch/arc/kernel/stacktrace.c index f8b7d880304d..ab97b034922f 100644 --- a/arch/arc/kernel/stacktrace.c +++ b/arch/arc/kernel/stacktrace.c @@ -237,11 +237,13 @@ unsigned int get_wchan(struct task_struct *tsk) */ void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace) { + /* Assumes @tsk is sleeping so unwinds from __switch_to */ arc_unwind_core(tsk, NULL, __collect_all_but_sched, trace); } void save_stack_trace(struct stack_trace *trace) { - arc_unwind_core(current, NULL, __collect_all, trace); + /* Pass NULL for task so it unwinds the current call frame */ + arc_unwind_core(NULL, NULL, __collect_all, trace); } #endif -- cgit v1.3 From 8f146d0204a874b6b1f5344ed578796e2fcd7e9c Mon Sep 17 00:00:00 2001 From: Chen Gang Date: Mon, 28 Oct 2013 11:00:38 +0800 Subject: arc: export symbol for save_stack_trace() in stacktrace.c Need export its symbol just like other architectures done, or can not pass compiling with allmodconfig, the related error: MODPOST 2994 modules ERROR: "save_stack_trace" [kernel/backtracetest.ko] undefined! ERROR: "save_stack_trace" [drivers/md/persistent-data/dm-persistent-data.ko] undefined! Signed-off-by: Chen Gang Signed-off-by: Vineet Gupta --- arch/arc/kernel/stacktrace.c | 1 + 1 file changed, 1 insertion(+) (limited to 'arch/arc/kernel/stacktrace.c') diff --git a/arch/arc/kernel/stacktrace.c b/arch/arc/kernel/stacktrace.c index ab97b034922f..9ce47cfe2303 100644 --- a/arch/arc/kernel/stacktrace.c +++ b/arch/arc/kernel/stacktrace.c @@ -246,4 +246,5 @@ void save_stack_trace(struct stack_trace *trace) /* Pass NULL for task so it unwinds the current call frame */ arc_unwind_core(NULL, NULL, __collect_all, trace); } +EXPORT_SYMBOL_GPL(save_stack_trace); #endif -- cgit v1.3