arm64: atomics: implement native {relaxed, acquire, release} atomics
authorWill Deacon <will.deacon@arm.com>
Thu, 8 Oct 2015 19:15:18 +0000 (20:15 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 12 Oct 2015 16:36:58 +0000 (17:36 +0100)
commit305d454aaa292be3a09a9d674e6c35f5b4249a13
treea99817f99077f273efd34d87c082958768ba91bf
parente8f3010f7326c00368dbc057bd052bec80dfc072
arm64: atomics: implement native {relaxed, acquire, release} atomics

Commit 654672d4ba1a ("locking/atomics: Add _{acquire|release|relaxed}()
variants of some atomic operation") introduced a relaxed atomic API to
Linux that maps nicely onto the arm64 memory model, including the new
ARMv8.1 atomic instructions.

This patch hooks up the API to our relaxed atomic instructions, rather
than have them all expand to the full-barrier variants as they do
currently.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/atomic.h
arch/arm64/include/asm/atomic_ll_sc.h
arch/arm64/include/asm/atomic_lse.h
arch/arm64/include/asm/cmpxchg.h