arm64: spinlock: retry trylock operation if strex fails on free lock
authorCatalin Marinas <catalin.marinas@arm.com>
Fri, 31 May 2013 15:30:58 +0000 (16:30 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Fri, 7 Jun 2013 16:58:31 +0000 (17:58 +0100)
commit4ecf7ccb1973fd826456b6ab1e6dfafe9023c753
tree318c48fdfa422908da871d25d2e47903321aabe3
parentebd88367de80f9509bd30a09342d0a19c925b23e
arm64: spinlock: retry trylock operation if strex fails on free lock

An exclusive store instruction may fail for reasons other than lock
contention (e.g. a cache eviction during the critical section) so, in
line with other architectures using similar exclusive instructions
(alpha, mips, powerpc), retry the trylock operation if the lock appears
to be free but the strex reported failure.

Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Reported-by: Tony Thompson <anthony.thompson@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
arch/arm64/include/asm/spinlock.h