[RFC PATCH 05/12] arm: mm: retry on QSD icache parity errors

Russell King - ARM Linux linux at arm.linux.org.uk
Tue Feb 23 14:02:54 EST 2010


On Tue, Feb 23, 2010 at 10:36:08AM -0800, Daniel Walker wrote:
> On Fri, 2010-01-29 at 11:11 +0000, Catalin Marinas wrote:
> > On Thu, 2010-01-28 at 22:59 +0000, Daniel Walker wrote:
> > > diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
> > > index 10e0680..bea3e75 100644
> > > --- a/arch/arm/mm/fault.c
> > > +++ b/arch/arm/mm/fault.c
> > [...]
> > >  static struct fsr_info {
> > >         int     (*fn)(unsigned long addr, unsigned int fsr, struct pt_regs *regs);
> > >         int     sig;
> > > @@ -479,7 +513,7 @@ static struct fsr_info {
> > >         { do_bad,               SIGBUS,  0,             "unknown 19"                       },
> > >         { do_bad,               SIGBUS,  0,             "lock abort"                       }, /* xscale */
> > >         { do_bad,               SIGBUS,  0,             "unknown 21"                       },
> > > -       { do_bad,               SIGBUS,  BUS_OBJERR,    "imprecise external abort"         }, /* xscale */
> > > +       { do_imprecise_ext,     SIGBUS,  BUS_OBJERR,    "imprecise external abort"         }, /* xscale */
> > 
> > Can you not use hook_fault_code() and move the do_imprecise_ext() to a
> > platform-specific file (under arch/arm/mach-* maybe)?
> > 
> 
> How do you mean? I'm not sure how we would move this into
> arch/arm/mach- ..

Err, exactly as Catalin says.  Use hook_fault_code() to hook into the
fault table at run time, just like platforms which have to handle
imprecise exceptions on PCI and the alignment fault handler do.



More information about the linux-arm-kernel mailing list