X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=arch%2Farm64%2Flib%2Fbitops.S;h=7dac371cc9a2f8c817d895d1be0103db9a009ec9;hb=8e86f0b409a44193f1587e87b69c5dcf8f65be67;hp=e5db797790d3265c5418d749b7537c494ddeb250;hpb=4a7ac12eedd190cdf071e61145defa73df1675c0;p=~andy%2Flinux diff --git a/arch/arm64/lib/bitops.S b/arch/arm64/lib/bitops.S index e5db797790d..7dac371cc9a 100644 --- a/arch/arm64/lib/bitops.S +++ b/arch/arm64/lib/bitops.S @@ -46,11 +46,12 @@ ENTRY( \name ) mov x2, #1 add x1, x1, x0, lsr #3 // Get word offset lsl x4, x2, x3 // Create mask -1: ldaxr x2, [x1] +1: ldxr x2, [x1] lsr x0, x2, x3 // Save old value of bit \instr x2, x2, x4 // toggle bit stlxr w5, x2, [x1] cbnz w5, 1b + dmb ish and x0, x0, #1 3: ret ENDPROC(\name )