## Automatically generated incremental diff ## From: linux-2.5.69-bk11 ## To: linux-2.5.69-bk12 ## Robot: $Id: make-incremental-diff,v 1.11 2002/02/20 02:59:33 hpa Exp $ diff -urN linux-2.5.69-bk11/Makefile linux-2.5.69-bk12/Makefile --- linux-2.5.69-bk11/Makefile 2003-05-17 04:44:29.000000000 -0700 +++ linux-2.5.69-bk12/Makefile 2003-05-17 04:44:33.000000000 -0700 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 5 SUBLEVEL = 69 -EXTRAVERSION = -bk11 +EXTRAVERSION = -bk12 # *DOCUMENTATION* # To see a list of typical targets execute "make help" diff -urN linux-2.5.69-bk11/arch/i386/kernel/entry.S linux-2.5.69-bk12/arch/i386/kernel/entry.S --- linux-2.5.69-bk11/arch/i386/kernel/entry.S 2003-05-04 16:53:08.000000000 -0700 +++ linux-2.5.69-bk12/arch/i386/kernel/entry.S 2003-05-17 04:44:33.000000000 -0700 @@ -497,13 +497,19 @@ pushl $do_debug jmp error_code +/* + * NMI is doubly nasty. It can happen _while_ we're handling + * a debug fault, and the debug fault hasn't yet been able to + * clear up the stack. So we first check whether we got an + * NMI on the sysenter entry path, but after that we need to + * check whether we got an NMI on the debug path where the debug + * fault happened on the sysenter path. + */ ENTRY(nmi) cmpl $sysenter_entry,(%esp) je nmi_stack_fixup - cmpl $debug - 1,(%esp) - jle nmi_stack_correct - cmpl $debug_esp_fix_insn,(%esp) - jle nmi_debug_stack_fixup + cmpl $sysenter_entry,12(%esp) + je nmi_debug_stack_check nmi_stack_correct: pushl %eax SAVE_ALL @@ -517,6 +523,13 @@ nmi_stack_fixup: FIX_STACK(12,nmi_stack_correct, 1) jmp nmi_stack_correct +nmi_debug_stack_check: + cmpw $__KERNEL_CS,16(%esp) + jne nmi_stack_correct + cmpl $debug - 1,(%esp) + jle nmi_stack_correct + cmpl $debug_esp_fix_insn,(%esp) + jle nmi_debug_stack_fixup nmi_debug_stack_fixup: FIX_STACK(24,nmi_stack_correct, 1) jmp nmi_stack_correct