From: Catalin Marinas Date: Tue, 30 Apr 2013 14:58:37 +0000 (+0100) Subject: arm64: Use acquire/release semantics instead of explicit DMB X-Git-Tag: v3.10-rc1~44^2~6 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=16c85a1fd73eade2ae290d759924c09b4595f504;p=platform%2Fupstream%2Fkernel-adaptation-pc.git arm64: Use acquire/release semantics instead of explicit DMB This patch changes the test_and_*_bit functions to use the load-acquire/store-release instructions instead of explicit DMB. Signed-off-by: Catalin Marinas --- diff --git a/arch/arm64/lib/bitops.S b/arch/arm64/lib/bitops.S index eaed8bb..36216d3 100644 --- a/arch/arm64/lib/bitops.S +++ b/arch/arm64/lib/bitops.S @@ -46,13 +46,11 @@ ENTRY( \name ) mov x2, #1 add x1, x1, x0, lsr #3 // Get word offset lsl x4, x2, x3 // Create mask - smp_dmb ish -1: ldxr x2, [x1] +1: ldaxr x2, [x1] lsr x0, x2, x3 // Save old value of bit \instr x2, x2, x4 // toggle bit - stxr w5, x2, [x1] + stlxr w5, x2, [x1] cbnz w5, 1b - smp_dmb ish and x0, x0, #1 3: ret ENDPROC(\name )