sched: Add wrapper for get_wchan() to keep task blocked
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
This commit is contained in:
committed by
Peter Zijlstra
parent
bc9bbb8173
commit
42a20f86dc
@ -89,7 +89,7 @@ static inline void start_thread(struct pt_regs * regs, unsigned long pc,
|
||||
/* Free all resources held by a thread. */
|
||||
#define release_thread(tsk) do { } while(0)
|
||||
|
||||
unsigned long get_wchan(struct task_struct *);
|
||||
unsigned long __get_wchan(struct task_struct *);
|
||||
|
||||
#define task_pt_regs(tsk) ((tsk)->thread.kregs)
|
||||
#define KSTK_EIP(tsk) ((tsk)->thread.kregs->pc)
|
||||
|
@ -183,7 +183,7 @@ do { \
|
||||
/* Free all resources held by a thread. */
|
||||
#define release_thread(tsk) do { } while (0)
|
||||
|
||||
unsigned long get_wchan(struct task_struct *task);
|
||||
unsigned long __get_wchan(struct task_struct *task);
|
||||
|
||||
#define task_pt_regs(tsk) (task_thread_info(tsk)->kregs)
|
||||
#define KSTK_EIP(tsk) (task_pt_regs(tsk)->tpc)
|
||||
|
Reference in New Issue
Block a user