aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/sched/task_stack.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2017-02-05 14:31:22 +0100
committerIngo Molnar <mingo@kernel.org>2017-03-03 01:45:24 +0100
commit9049863a32fad5d7158318e45f0a41a0f2192c0c (patch)
tree18acb5b1a7d253fc99b6a80196d95a6e0f7ce3cc /include/linux/sched/task_stack.h
parentsched/headers, vfs/execve: Move the do_execve*() prototypes from <linux/sched.h> to <linux/binfmts.h> (diff)
downloadlinux-dev-9049863a32fad5d7158318e45f0a41a0f2192c0c.tar.xz
linux-dev-9049863a32fad5d7158318e45f0a41a0f2192c0c.zip
sched/headers: Move kstack_end() from <linux/sched.h> to <linux/sched/task_stack.h>
This is a task-stack related API, not core scheduler functionality. Acked-by: Linus Torvalds <torvalds@linux-foundation.org> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to '')
-rw-r--r--include/linux/sched/task_stack.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/sched/task_stack.h b/include/linux/sched/task_stack.h
index aaa5c2a6a0e9..df6ea6665b31 100644
--- a/include/linux/sched/task_stack.h
+++ b/include/linux/sched/task_stack.h
@@ -108,4 +108,14 @@ static inline unsigned long stack_not_used(struct task_struct *p)
#endif
extern void set_task_stack_end_magic(struct task_struct *tsk);
+#ifndef __HAVE_ARCH_KSTACK_END
+static inline int kstack_end(void *addr)
+{
+ /* Reliable end of stack detection:
+ * Some APM bios versions misalign the stack
+ */
+ return !(((unsigned long)addr+sizeof(void*)-1) & (THREAD_SIZE-sizeof(void*)));
+}
+#endif
+
#endif /* _LINUX_SCHED_TASK_STACK_H */