[PATCH 4/4] ARM: apply the l2x0 Errata 769419 at run time

Srinidhi Kasagar srinidhi.kasagar at stericsson.com
Tue Jan 22 00:59:17 EST 2013


On Mon, Jan 21, 2013 at 17:12:02 +0100, Russell King - ARM Linux wrote:
> On Mon, Jan 21, 2013 at 06:47:12PM +0530, srinidhi kasagar wrote:
> > Signed-off-by: srinidhi kasagar <srinidhi.kasagar at stericsson.com>
> > ---
> >  arch/arm/kernel/process.c |    9 ++++++---
> >  1 files changed, 6 insertions(+), 3 deletions(-)
> > 
> > diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
> > index c6dec5f..c94d84f 100644
> > --- a/arch/arm/kernel/process.c
> > +++ b/arch/arm/kernel/process.c
> > @@ -39,6 +39,7 @@
> >  #include <asm/thread_notify.h>
> >  #include <asm/stacktrace.h>
> >  #include <asm/mach/time.h>
> > +#include <asm/hardware/cache-l2x0.h>
> >  
> >  #ifdef CONFIG_CC_STACKPROTECTOR
> >  #include <linux/stackprotector.h>
> > @@ -201,9 +202,11 @@ void cpu_idle(void)
> >  			 * to ensure we don't miss a wakeup call.
> >  			 */
> >  			local_irq_disable();
> > -#ifdef CONFIG_PL310_ERRATA_769419
> > -			wmb();
> > -#endif
> > +
> > +			/* Check for PL310 ERRATA 769419 */
> > +			if (l2x0_get_rtl_release() == L2X0_CACHE_ID_RTL_R3P0)
> > +				wmb();
> 
> You have to be joking if you think that is suitable... two reasons:
> 
> 1. It's a horrid layering violation.
> 2. l2x0_get_rtl_release() unconditionally reads from a register in the L2
>    controller.  What if you don't have a L2 controller?

my bad, this can be fixed. Thank you.

> 
> Is it really worth this hastle, or would it just be better to keep the
> ifdef there, using the configuration symbol as a way to indicate whether
> we want this work-around included in the kernel, and always have the
> wmb() there if the symbol is enabled?
We can keep the ifdef there, my idea was to completely eliminate these
CONFIG_PL310_ERRATA_*. The problem comes when you have a single defconfig
for two platforms (ex, ST-E's 8500 and 8540) where one platform needs
this and the other don't.

regards/srinidhi




More information about the linux-arm-kernel mailing list