summaryrefslogtreecommitdiff
path: root/arch/csky
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2021-09-29 15:02:14 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-08-28 16:24:03 +0200
commit5ce1264b586d53775f69769606e8c4afcbd7f85c (patch)
treefa29dab4777aa1bb73c7498fda3244c1281da50d /arch/csky
parentb52e53a44a4320d357b7462d11a98cf1146c22c0 (diff)
downloadlinux-5ce1264b586d53775f69769606e8c4afcbd7f85c.tar.gz
linux-5ce1264b586d53775f69769606e8c4afcbd7f85c.tar.bz2
linux-5ce1264b586d53775f69769606e8c4afcbd7f85c.zip
sched: Add wrapper for get_wchan() to keep task blocked
commit 42a20f86dc19f9282d974df0ba4d226c865ab9dd upstream. Having a stable wchan means the process must be blocked and for it to stay that way while performing stack unwinding. Suggested-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Kees Cook <keescook@chromium.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Geert Uytterhoeven <geert@linux-m68k.org> Acked-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> [arm] Tested-by: Mark Rutland <mark.rutland@arm.com> [arm64] Link: https://lkml.kernel.org/r/20211008111626.332092234@infradead.org Signed-off-by: Siddhi Katage <siddhi.katage@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/csky')
-rw-r--r--arch/csky/include/asm/processor.h2
-rw-r--r--arch/csky/kernel/stacktrace.c5
2 files changed, 3 insertions, 4 deletions
diff --git a/arch/csky/include/asm/processor.h b/arch/csky/include/asm/processor.h
index 9e933021fe8e..817dd60ff152 100644
--- a/arch/csky/include/asm/processor.h
+++ b/arch/csky/include/asm/processor.h
@@ -81,7 +81,7 @@ static inline void release_thread(struct task_struct *dead_task)
extern int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
-unsigned long get_wchan(struct task_struct *p);
+unsigned long __get_wchan(struct task_struct *p);
#define KSTK_EIP(tsk) (task_pt_regs(tsk)->pc)
#define KSTK_ESP(tsk) (task_pt_regs(tsk)->usp)
diff --git a/arch/csky/kernel/stacktrace.c b/arch/csky/kernel/stacktrace.c
index 1b280ef08004..9f78f5d21511 100644
--- a/arch/csky/kernel/stacktrace.c
+++ b/arch/csky/kernel/stacktrace.c
@@ -111,12 +111,11 @@ static bool save_wchan(unsigned long pc, void *arg)
return false;
}
-unsigned long get_wchan(struct task_struct *task)
+unsigned long __get_wchan(struct task_struct *task)
{
unsigned long pc = 0;
- if (likely(task && task != current && !task_is_running(task)))
- walk_stackframe(task, NULL, save_wchan, &pc);
+ walk_stackframe(task, NULL, save_wchan, &pc);
return pc;
}