[PATCH] spinlock: don't use deprecated barriers on ARMv7

Russell King - ARM Linux linux at arm.linux.org.uk
Sun Jan 24 15:42:33 EST 2010


On Wed, Jan 13, 2010 at 09:15:36PM +0530, Rabin Vincent wrote:
> On ARMv7, the use of the cp15 operations for barriers is deprecated in
> favour of the isb, dsb, and dmb instructions.  Change the locking
> functions to use the appropriate type of dsb for the architecture being
> built for.

Umm...

> diff --git a/arch/arm/include/asm/system.h b/arch/arm/include/asm/system.h
> index 058e7e9..0b371ba 100644
> --- a/arch/arm/include/asm/system.h
> +++ b/arch/arm/include/asm/system.h
> @@ -164,6 +164,14 @@ extern unsigned int user_debug;
>  #define set_mb(var, value)	do { var = value; smp_mb(); } while (0)
>  #define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t");
>  
> +static inline void smp_sev(void)
> +{
> +#if defined(CONFIG_SMP) && defined(CONFIG_CPU_32v6K)
> +	dsb();
> +	__asm__ __volatile__ ("sev" : : : "memory");

Why are you introducing a compiler memory barrier where there was none
before?



More information about the linux-arm-kernel mailing list