[GIT PULL] prefetch support for 3.13

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Tue Nov 19 04:27:41 EST 2013


On Mon, Nov 11, 2013 at 11:25:54AM +0000, Will Deacon wrote:
> On Mon, Nov 11, 2013 at 09:08:10AM +0000, Uwe Kleine-König wrote:
> > Hello Will,
> > 
> > On Wed, Oct 09, 2013 at 06:13:13PM +0100, Will Deacon wrote:
> > > The following changes since commit 15c03dd4859ab16f9212238f29dd315654aa94f6:
> > > 
> > >   Linux 3.12-rc3 (2013-09-29 15:02:38 -0700)
> > > 
> > > are available in the git repository at:
> > > 
> > >   git://git.kernel.org/pub/scm/linux/kernel/git/will/linux.git for-rmk/prefetch
> > > 
> > > for you to fetch changes up to d779c07dd72098a7416d907494f958213b7726f3:
> > > 
> > >   ARM: bitops: prefetch the destination word for write prior to strex (2013-09-30 16:42:56 +0100)
> > > 
> > > ----------------------------------------------------------------
> > > Will Deacon (6):
> > >       ARM: prefetch: remove redundant "cc" clobber
> > >       ARM: smp_on_up: move inline asm ALT_SMP patching macro out of spinlock.h
> > >       ARM: prefetch: add support for prefetchw using pldw on SMP ARMv7+ CPUs
> > >       ARM: locks: prefetch the destination word for write prior to strex
> > >       ARM: atomics: prefetch the destination word for write prior to strex
> > >       ARM: bitops: prefetch the destination word for write prior to strex
> > Hello Will,
> > 
> > it seems the last patch breaks on efm32:
> > 
> > arch/arm/lib/changebit.S: Assembler messages:
> > arch/arm/lib/changebit.S:15: Error: architectural extension `mp' is not allowed for the current base architecture
> 
> I see gas is being as helpful as ever. Something like the (untested) patch
> below should fix the issue.
> 
> Will
> 
> --->8
> 
> diff --git a/arch/arm/lib/bitops.h b/arch/arm/lib/bitops.h
> index e0c68d5bb7dc..52886b89706c 100644
> --- a/arch/arm/lib/bitops.h
> +++ b/arch/arm/lib/bitops.h
> @@ -10,7 +10,7 @@ UNWIND(       .fnstart        )
>         and     r3, r0, #31             @ Get bit offset
>         mov     r0, r0, lsr #5
>         add     r1, r1, r0, lsl #2      @ Get word offset
> -#if __LINUX_ARM_ARCH__ >= 7
> +#if __LINUX_ARM_ARCH__ >= 7 && defined(CONFIG_SMP)
>         .arch_extension mp
>         ALT_SMP(W(pldw) [r1])
>         ALT_UP(W(nop))
> 
It does fix compilation and I booted successfully on my efm32-tree +
next-20131119 + this patch + the patch for the be signal stuff.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |



More information about the linux-arm-kernel mailing list