On Mon, May 07, 2012 at 03:21:43AM +0100, Ben Hutchings wrote: > On Thu, 2012-05-03 at 13:13 -0700, [email protected] wrote: > > The patch below does not apply to the 3.3-stable tree. > > If someone wants it applied there, or to any other stable or longterm > > tree, then please email the backport, including the original git commit > > id to <[email protected]>. > [...] > > The attached patch is what I've queued for 3.2.y. Just some changes to > type names in the diff context.
Thanks Ben, I'd got the same fix planned. You're also right about 7398/1 applying cleanly after this has been fixed up. Cheers, Will > commit f154fe9b806574437b47f08e924ad10c0e240b23 upstream. > > The workaround for PL310 erratum #753970 can lead to deadlock on systems > with an L220 cache controller. > > This patch makes the workaround effective only when the cache controller > is identified as a PL310 at probe time. > > Signed-off-by: Will Deacon <[email protected]> > Signed-off-by: Russell King <[email protected]> > [bwh: Backported to 3.2: adjust context] > Signed-off-by: Ben Hutchings <[email protected]> > --- > arch/arm/mm/cache-l2x0.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > --- linux.orig/arch/arm/mm/cache-l2x0.c > +++ linux/arch/arm/mm/cache-l2x0.c > @@ -32,6 +32,7 @@ > static DEFINE_RAW_SPINLOCK(l2x0_lock); > static uint32_t l2x0_way_mask; /* Bitmask of active ways */ > static uint32_t l2x0_size; > +static unsigned long sync_reg_offset = L2X0_CACHE_SYNC; > > struct l2x0_regs l2x0_saved_regs; > > @@ -61,12 +62,7 @@ > { > void __iomem *base = l2x0_base; > > -#ifdef CONFIG_PL310_ERRATA_753970 > - /* write to an unmmapped register */ > - writel_relaxed(0, base + L2X0_DUMMY_REG); > -#else > - writel_relaxed(0, base + L2X0_CACHE_SYNC); > -#endif > + writel_relaxed(0, base + sync_reg_offset); > cache_wait(base + L2X0_CACHE_SYNC, 1); > } > > @@ -331,6 +327,10 @@ > else > ways = 8; > type = "L310"; > +#ifdef CONFIG_PL310_ERRATA_753970 > + /* Unmapped register. */ > + sync_reg_offset = L2X0_DUMMY_REG; > +#endif > break; > case L2X0_CACHE_ID_PART_L210: > ways = (aux >> 13) & 0xf; -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
