diff mbox

[Yakkety,1/1] Revert "x86/dumpstack: When OOPSing, rewind the stack before do_exit()"

Message ID 5587de00ee96835c69fcfa83c78d2913e87c7d76.1475087606.git.joseph.salisbury@canonical.com
State New
Headers show

Commit Message

Joseph Salisbury Sept. 28, 2016, 6:49 p.m. UTC
BugLink: http://bugs.launchpad.net/bugs/1627198

This reverts commit 2deb4be28077638591fe5fc593b7f8aabc140f42.
---
 arch/x86/entry/entry_32.S   | 11 -----------
 arch/x86/entry/entry_64.S   | 11 -----------
 arch/x86/kernel/dumpstack.c | 10 +---------
 3 files changed, 1 insertion(+), 31 deletions(-)
diff mbox

Patch

diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
index 0b56666..983e5d3 100644
--- a/arch/x86/entry/entry_32.S
+++ b/arch/x86/entry/entry_32.S
@@ -1153,14 +1153,3 @@  ENTRY(async_page_fault)
 	jmp	error_code
 END(async_page_fault)
 #endif
-
-ENTRY(rewind_stack_do_exit)
-	/* Prevent any naive code from trying to unwind to our caller. */
-	xorl	%ebp, %ebp
-
-	movl	PER_CPU_VAR(cpu_current_top_of_stack), %esi
-	leal	-TOP_OF_KERNEL_STACK_PADDING-PTREGS_SIZE(%esi), %esp
-
-	call	do_exit
-1:	jmp 1b
-END(rewind_stack_do_exit)
diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index d172c61..268a309 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -1438,14 +1438,3 @@  ENTRY(ignore_sysret)
 	mov	$-ENOSYS, %eax
 	sysret
 END(ignore_sysret)
-
-ENTRY(rewind_stack_do_exit)
-	/* Prevent any naive code from trying to unwind to our caller. */
-	xorl	%ebp, %ebp
-
-	movq	PER_CPU_VAR(cpu_current_top_of_stack), %rax
-	leaq	-TOP_OF_KERNEL_STACK_PADDING-PTREGS_SIZE(%rax), %rsp
-
-	call	do_exit
-1:	jmp 1b
-END(rewind_stack_do_exit)
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index 92e8f0a..ddca359 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -239,8 +239,6 @@  unsigned long oops_begin(void)
 EXPORT_SYMBOL_GPL(oops_begin);
 NOKPROBE_SYMBOL(oops_begin);
 
-void __noreturn rewind_stack_do_exit(int signr);
-
 void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
 {
 	if (regs && kexec_should_crash(current))
@@ -262,13 +260,7 @@  void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
 		panic("Fatal exception in interrupt");
 	if (panic_on_oops)
 		panic("Fatal exception");
-
-	/*
-	 * We're not going to return, but we might be on an IST stack or
-	 * have very little stack space left.  Rewind the stack and kill
-	 * the task.
-	 */
-	rewind_stack_do_exit(signr);
+	do_exit(signr);
 }
 NOKPROBE_SYMBOL(oops_end);