updates for be8 patch series
Will Deacon
will.deacon at arm.com
Wed Jul 24 05:36:22 EDT 2013
On Wed, Jul 24, 2013 at 02:06:05AM +0100, Victor Kamensky wrote:
> Hi Ben,
>
> Let me split off atomic64 from other issues, so we have focused topic here.
>
> Please see atomic64 issue test case below. Please try it in your setup. I've
> run on Pandaboard ES with my set of patches, but I believe it should be the
> same in your case.
[...]
> <snip>
>
> >> Index: linux-linaro-tracking/arch/arm/include/asm/atomic.h
> >> ===================================================================
> >> --- linux-linaro-tracking.orig/arch/arm/include/asm/atomic.h
> >> +++ linux-linaro-tracking/arch/arm/include/asm/atomic.h
> >> @@ -301,8 +301,13 @@ static inline void atomic64_add(u64 i, a
> >>
> >> __asm__ __volatile__("@ atomic64_add\n"
> >> "1: ldrexd %0, %H0, [%3]\n"
> >> +#ifndef CONFIG_CPU_BIG_ENDIAN /* little endian */
> >> " adds %0, %0, %4\n"
> >> " adc %H0, %H0, %H4\n"
> >> +#else
> >> +" adds %H0, %H0, %H4\n"
> >> +" adc %0, %0, %4\n"
> >> +#endif
I thought you could just use the %Q and %R output modifiers to get the
appropriate halves of the 64-bit operand, then you can avoid the #ifdef.
Will
More information about the linux-arm-kernel
mailing list