Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1425431

[PATCH v2 07/13] x86/die: Don't try to recover from an OOPS on a non-default stack

From Andy Lutomirski <luto@kernel.org>
Newsgroups linux.kernel
Subject [PATCH v2 07/13] x86/die: Don't try to recover from an OOPS on a non-default stack
Date 2016-06-17 22:10 +0200
Message-ID <rL8fw-2Ds-35@gated-at.bofh.it> (permalink)
References <rL8fv-2Ds-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


It's not going to work, because the scheduler will explode if we try
to schedule when running on an IST stack or similar.

This will matter when we let kernel stack overflows (which are #DF)
call die().

Signed-off-by: Andy Lutomirski <luto@kernel.org>
---
 arch/x86/kernel/dumpstack.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index 2bb25c3fe2e8..36effb39c9c9 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -247,6 +247,9 @@ void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
 		return;
 	if (in_interrupt())
 		panic("Fatal exception in interrupt");
+	if (((current_stack_pointer() ^ (current_top_of_stack() - 1))
+	     & ~(THREAD_SIZE - 1)) != 0)
+		panic("Fatal exception on special stack");
 	if (panic_on_oops)
 		panic("Fatal exception");
 	do_exit(signr);
-- 
2.5.5

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2 00/13] Virtually mapped stacks with guard pages (x86, core) Andy Lutomirski <luto@kernel.org> - 2016-06-17 22:10 +0200
  [PATCH v2 13/13] x86/mm: Improve stack-overflow #PF handling Andy Lutomirski <luto@kernel.org> - 2016-06-17 22:10 +0200
  [PATCH v2 11/13] x86/dumpstack/64: Handle faults when printing the "Stack:" part of an OOPS Andy Lutomirski <luto@kernel.org> - 2016-06-17 22:10 +0200
  [PATCH v2 07/13] x86/die: Don't try to recover from an OOPS on a non-default stack Andy Lutomirski <luto@kernel.org> - 2016-06-17 22:10 +0200
  [PATCH v2 01/13] x86/mm/hotplug: Don't remove PGD entries in remove_pagetable() Andy Lutomirski <luto@kernel.org> - 2016-06-17 22:10 +0200
  [PATCH v2 08/13] x86/dumpstack: When OOPSing, rewind the stack before do_exit Andy Lutomirski <luto@kernel.org> - 2016-06-17 22:10 +0200
  [PATCH v2 10/13] x86/dumpstack: Try harder to get a call trace on stack overflow Andy Lutomirski <luto@kernel.org> - 2016-06-17 22:10 +0200
  [PATCH v2 05/13] mm: Move memcg stack accounting to account_kernel_stack Andy Lutomirski <luto@kernel.org> - 2016-06-17 22:10 +0200
    Re: [PATCH v2 05/13] mm: Move memcg stack accounting to  account_kernel_stack Josh Poimboeuf <jpoimboe@redhat.com> - 2016-06-17 23:00 +0200
      Re: [PATCH v2 05/13] mm: Move memcg stack accounting to account_kernel_stack Andy Lutomirski <luto@amacapital.net> - 2016-06-18 00:20 +0200
    Re: [PATCH v2 05/13] mm: Move memcg stack accounting to  account_kernel_stack Michal Hocko <mhocko@kernel.org> - 2016-06-20 15:10 +0200
      Re: [PATCH v2 05/13] mm: Move memcg stack accounting to account_kernel_stack Andy Lutomirski <luto@amacapital.net> - 2016-06-20 18:10 +0200

csiph-web