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 <catalin.marinas@arm.com>
This commit is contained in:
Родитель
c47d6a04e6
Коммит
16c85a1fd7
|
@ -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 )
|
||||
|
|
Загрузка…
Ссылка в новой задаче