X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=arch%2Farm64%2Flib%2Fbitops.S;h=7dac371cc9a2f8c817d895d1be0103db9a009ec9;hb=bb7d43b149ef88cd0d3cb38bb49ebb69a460b42b;hp=e5db797790d3265c5418d749b7537c494ddeb250;hpb=e6eea1536e077b2b7bfc8c173f09d01ef72d2c7b;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 )