[PATCH 1/21] [POWERPC] Reworking machine check handling and Fix 440/440A

Josh Boyer jwboyer at linux.vnet.ibm.com
Mon Dec 24 12:32:10 EST 2007


On Fri, 21 Dec 2007 15:39:21 +1100
Benjamin Herrenschmidt <benh at kernel.crashing.org> wrote:

> Index: linux-merge/arch/powerpc/kernel/traps.c
> ===================================================================
> --- linux-merge.orig/arch/powerpc/kernel/traps.c	2007-12-20 11:34:43.000000000 +1100
> +++ linux-merge/arch/powerpc/kernel/traps.c	2007-12-20 11:35:40.000000000 +1100

[snip]

> -#elif defined (CONFIG_E500)
> +	return 0;
> +}
> +#elif defined(CONFIG_E500)
> +int machine_check_e500(struct pt_regs *regs)

This...

> +{
> +	unsigned long reason = get_mc_reason(regs);
> +
>  	printk("Machine check in kernel mode.\n");
>  	printk("Caused by (from MCSR=%lx): ", reason);
> 
> @@ -403,7 +416,14 @@ static int generic_machine_check_excepti
>  		printk("Bus - Instruction Parity Error\n");
>  	if (reason & MCSR_BUS_RPERR)
>  		printk("Bus - Read Parity Error\n");
> -#elif defined (CONFIG_E200)
> +
> +	return 0;
> +}
> +#elif defined(CONFIG_E200)
> +int machine_check_e200(struct pt_regs *regs)

... and this cause build failures for most of the mpc8xxx defconfigs.
The reason is that e200 and e500 are both lumped under CONFIG_FSL_BOOKE
in cputable.c, but you have them segregated more here.  I've added a
fix that just does CONFIG_FSL_BOOKE here to match cputable.c.

josh



More information about the Linuxppc-dev mailing list