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

Mikael Pettersson
2005-04-05T09:57:29Z

Ingo Molnar writes:
>
> * Ingo Molnar <mingo@elte.hu> wrote:
>
> > > this fixed my crashes too.
> >
> > spoke too soon - they still trigger even with the patch applied.
>
> the patch below fixes the crash, it was related to CONFIG_PREEMPT.
>
> Ingo
>
> --
> fix entry.S crash with PREEMPT+PAGEALLOC
>
> Signed-off-by: Ingo Molnar <mingo@elte.hu>
>
> --- linux/arch/i386/kernel/entry.S.orig
> +++ linux/arch/i386/kernel/entry.S
> @@ -165,9 +165,9 @@ ENTRY(resume_kernel)
> need_resched:
> movl TI_flags(%ebp), %ecx # need_resched set ?
> testb $_TIF_NEED_RESCHED, %cl
> - jz restore_all
> + jz restore_nocheck
> testl $IF_MASK,EFLAGS(%esp) # interrupts off (exception path) ?
> - jz restore_all
> + jz restore_nocheck
> call preempt_schedule_irq
> jmp need_resched
> #endif

Is this sufficient or do we also need the s/restore_all/restore_nocheck/
at around line 553 which was in the first posted patch?

/Mikael