[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20170317155921.24369-1-cascardo@canonical.com>
Date: Fri, 17 Mar 2017 12:59:21 -0300
From: Thadeu Lima de Souza Cascardo <cascardo@...onical.com>
To: linuxppc-dev@...ts.ozlabs.org
Cc: linux-kernel@...r.kernel.org,
Michael Ellerman <mpe@...erman.id.au>,
Paul Mackerras <paulus@...ba.org>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>
Subject: [PATCH] powerpc: fix /proc/self/stack
For the current task, the kernel stack would only tell the last time the
process was rescheduled, if ever. Use the current stack pointer for the
current task.
This is also consistent with some other architectures.
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@...onical.com>
---
arch/powerpc/kernel/stacktrace.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/kernel/stacktrace.c b/arch/powerpc/kernel/stacktrace.c
index 6671195..2446066 100644
--- a/arch/powerpc/kernel/stacktrace.c
+++ b/arch/powerpc/kernel/stacktrace.c
@@ -59,7 +59,12 @@ EXPORT_SYMBOL_GPL(save_stack_trace);
void save_stack_trace_tsk(struct task_struct *tsk, struct stack_trace *trace)
{
- save_context_stack(trace, tsk->thread.ksp, tsk, 0);
+ unsigned long sp = tsk->thread.ksp;
+
+ if (tsk == current)
+ sp = current_stack_pointer();
+
+ save_context_stack(trace, sp, tsk, 0);
}
EXPORT_SYMBOL_GPL(save_stack_trace_tsk);
--
2.9.3
Powered by blists - more mailing lists