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

Josh Boyer jwboyer at linux.vnet.ibm.com
Tue Dec 25 03:15:57 EST 2007


On Sun, 23 Dec 2007 19:32:10 -0600
Josh Boyer <jwboyer at linux.vnet.ibm.com> wrote:

> 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.

Actually, reverse that.  There are other places where e200 and e500 are
separated by ifdefs, so I made cputable.c match the rest.

josh



More information about the Linuxppc-dev mailing list