Re: [PATCH][RFC] exception processing in early boot

From: Andi Kleen
Date: Wed Aug 30 2006 - 12:27:59 EST


On Wednesday 30 August 2006 18:25, pageexec@xxxxxxxxxxx wrote:
> On 30 Aug 2006 at 14:59, Andi Kleen wrote:
> > > I think that the good method would be to :
> > > - announce the patch
> > > - find a volunteer to port it
> > > - apply it once the volunteer agrees to handle it
> > > This way, no code gets lost because there's always someone to track it.
> >
> > I can put that one into my tree for .19
>
> here's my quick attempt:


It would be better to separate exceptions from interrupts here.
A spurious interrupt is not necessarily fatal, just an exception is.

But I went with the simpler patch with some changes now
(added PANIC to the message etc.)

>
> --- linux-2.6.18-rc5/arch/i386/kernel/head.S 2006-08-28 11:37:31.000000000
> +0200
> +++ linux-2.6.18-rc5-fix/arch/i386/kernel/head.S 2006-08-30
> 18:22:15.000000000 +0200
> @@ -382,34 +382,25 @@ rp_sidt:
> /* This is the default interrupt "handler" :-) */
> ALIGN
> ignore_int:
> - cld
> #ifdef CONFIG_PRINTK
> - pushl %eax
> - pushl %ecx
> - pushl %edx
> - pushl %es
> - pushl %ds
> + cld
> movl $(__KERNEL_DS),%eax
> movl %eax,%ds
> movl %eax,%es
> - pushl 16(%esp)
> - pushl 24(%esp)
> - pushl 32(%esp)
> - pushl 40(%esp)
> + pushl 12(%esp)
> + pushl 12(%esp)
> + pushl 12(%esp)
> + pushl 12(%esp)
> pushl $int_msg
> #ifdef CONFIG_EARLY_PRINTK
> call early_printk
> #else
> call printk
> #endif
> - addl $(5*4),%esp
> - popl %ds
> - popl %es
> - popl %edx
> - popl %ecx
> - popl %eax
> #endif
> - iret
> +1: hlt

This is wrong because i386 still supports some CPUs that don't support
HLT.

-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/