Re: crash in entry.S restore_all, 2.6.12-rc2, x86, PAGEALLOC

Andrew Morton
2005-04-05T07:03:32Z

Ingo Molnar <mingo@elte.hu> wrote:
>
> the crashes below happen when PAGEALLOC is enabled. It's this
> instruction:
>
> movb OLDSS(%esp), %ah
>
> OLDSS is 0x38, esp is f4f83fc8, OLDSS(%esp) is thus f4f84000, which
> correctly creates the PAGEALLOC pagefault. esp is off by 4 bytes?
>
> it could be the ESP-16-bit-corruption patch causing this,

Do you have nmis enabled?

From: Akinobu Mita <amgta@yacht.ocn.ne.jp>

With nmi_watchdog=1, I got random Oopses (Unable to handle kernel paging
request, not by the NMI oopser) from many processes. It is not happend
with -rc1.

The following change fixes this problem.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

25-akpm/arch/i386/kernel/entry.S | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN arch/i386/kernel/entry.S~nmi_stack_correct-fix arch/i386/kernel/entry.S
--- 25/arch/i386/kernel/entry.S~nmi_stack_correct-fix 2005-04-05 00:02:48.000000000 -0700
+++ 25-akpm/arch/i386/kernel/entry.S 2005-04-05 00:02:48.000000000 -0700
@@ -550,7 +550,7 @@ nmi_stack_correct:
xorl %edx,%edx # zero error code
movl %esp,%eax # pt_regs pointer
call do_nmi
- jmp restore_all
+ jmp restore_nocheck

nmi_stack_fixup:
FIX_STACK(12,nmi_stack_correct, 1)
_