aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/mm/fault.c
diff options
context:
space:
mode:
authorAaron Tomlin <atomlin@redhat.com>2014-09-12 09:16:18 -0400
committerIngo Molnar <mingo@kernel.org>2014-09-19 06:35:23 -0400
commita70857e46dd13e87ae06bf0e64cb6a2d4f436265 (patch)
tree3be941f7657d57af4215c886763072701c6c2f6e /arch/powerpc/mm/fault.c
parentd4311ff1a8da48d609db9500f121c15580dfeeb7 (diff)
sched: Add helper for task stack page overrun checking
This facility is used in a few places so let's introduce a helper function to improve code readability. Signed-off-by: Aaron Tomlin <atomlin@redhat.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: aneesh.kumar@linux.vnet.ibm.com Cc: dzickus@redhat.com Cc: bmr@redhat.com Cc: jcastillo@redhat.com Cc: oleg@redhat.com Cc: riel@redhat.com Cc: prarit@redhat.com Cc: jgh@redhat.com Cc: minchan@kernel.org Cc: mpe@ellerman.id.au Cc: tglx@linutronix.de Cc: hannes@cmpxchg.org Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Paul Mackerras <paulus@samba.org> Cc: Seiji Aguchi <seiji.aguchi@hds.com> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> Cc: linuxppc-dev@lists.ozlabs.org Link: http://lkml.kernel.org/r/1410527779-8133-3-git-send-email-atomlin@redhat.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/powerpc/mm/fault.c')
-rw-r--r--arch/powerpc/mm/fault.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
index 35d0760c3fa4..99b2f2775658 100644
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -507,7 +507,6 @@ bail:
507void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig) 507void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
508{ 508{
509 const struct exception_table_entry *entry; 509 const struct exception_table_entry *entry;
510 unsigned long *stackend;
511 510
512 /* Are we prepared to handle this fault? */ 511 /* Are we prepared to handle this fault? */
513 if ((entry = search_exception_tables(regs->nip)) != NULL) { 512 if ((entry = search_exception_tables(regs->nip)) != NULL) {
@@ -536,8 +535,7 @@ void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig)
536 printk(KERN_ALERT "Faulting instruction address: 0x%08lx\n", 535 printk(KERN_ALERT "Faulting instruction address: 0x%08lx\n",
537 regs->nip); 536 regs->nip);
538 537
539 stackend = end_of_stack(current); 538 if (task_stack_end_corrupted(current))
540 if (*stackend != STACK_END_MAGIC)
541 printk(KERN_ALERT "Thread overran stack, or stack corrupted\n"); 539 printk(KERN_ALERT "Thread overran stack, or stack corrupted\n");
542 540
543 die("Kernel access of bad area", regs, sig); 541 die("Kernel access of bad area", regs, sig);