@@ -207,7 +207,7 @@ static __always_inline int arch_atomic_fetch_add_unless(atomic_t *v, int a, int
207
207
" add %[rc], %[p], %[a]\n"
208
208
" sc.w.rl %[rc], %[rc], %[c]\n"
209
209
" bnez %[rc], 0b\n"
210
- " fence rw, rw\n"
210
+ RISCV_FULL_BARRIER
211
211
"1:\n"
212
212
: [p ]"=&r" (prev ), [rc ]"=&r" (rc ), [c ]"+A" (v -> counter )
213
213
: [a ]"r" (a ), [u ]"r" (u )
@@ -228,7 +228,7 @@ static __always_inline s64 arch_atomic64_fetch_add_unless(atomic64_t *v, s64 a,
228
228
" add %[rc], %[p], %[a]\n"
229
229
" sc.d.rl %[rc], %[rc], %[c]\n"
230
230
" bnez %[rc], 0b\n"
231
- " fence rw, rw\n"
231
+ RISCV_FULL_BARRIER
232
232
"1:\n"
233
233
: [p ]"=&r" (prev ), [rc ]"=&r" (rc ), [c ]"+A" (v -> counter )
234
234
: [a ]"r" (a ), [u ]"r" (u )
@@ -248,7 +248,7 @@ static __always_inline bool arch_atomic_inc_unless_negative(atomic_t *v)
248
248
" addi %[rc], %[p], 1\n"
249
249
" sc.w.rl %[rc], %[rc], %[c]\n"
250
250
" bnez %[rc], 0b\n"
251
- " fence rw, rw\n"
251
+ RISCV_FULL_BARRIER
252
252
"1:\n"
253
253
: [p ]"=&r" (prev ), [rc ]"=&r" (rc ), [c ]"+A" (v -> counter )
254
254
:
@@ -268,7 +268,7 @@ static __always_inline bool arch_atomic_dec_unless_positive(atomic_t *v)
268
268
" addi %[rc], %[p], -1\n"
269
269
" sc.w.rl %[rc], %[rc], %[c]\n"
270
270
" bnez %[rc], 0b\n"
271
- " fence rw, rw\n"
271
+ RISCV_FULL_BARRIER
272
272
"1:\n"
273
273
: [p ]"=&r" (prev ), [rc ]"=&r" (rc ), [c ]"+A" (v -> counter )
274
274
:
@@ -288,7 +288,7 @@ static __always_inline int arch_atomic_dec_if_positive(atomic_t *v)
288
288
" bltz %[rc], 1f\n"
289
289
" sc.w.rl %[rc], %[rc], %[c]\n"
290
290
" bnez %[rc], 0b\n"
291
- " fence rw, rw\n"
291
+ RISCV_FULL_BARRIER
292
292
"1:\n"
293
293
: [p ]"=&r" (prev ), [rc ]"=&r" (rc ), [c ]"+A" (v -> counter )
294
294
:
@@ -310,7 +310,7 @@ static __always_inline bool arch_atomic64_inc_unless_negative(atomic64_t *v)
310
310
" addi %[rc], %[p], 1\n"
311
311
" sc.d.rl %[rc], %[rc], %[c]\n"
312
312
" bnez %[rc], 0b\n"
313
- " fence rw, rw\n"
313
+ RISCV_FULL_BARRIER
314
314
"1:\n"
315
315
: [p ]"=&r" (prev ), [rc ]"=&r" (rc ), [c ]"+A" (v -> counter )
316
316
:
@@ -331,7 +331,7 @@ static __always_inline bool arch_atomic64_dec_unless_positive(atomic64_t *v)
331
331
" addi %[rc], %[p], -1\n"
332
332
" sc.d.rl %[rc], %[rc], %[c]\n"
333
333
" bnez %[rc], 0b\n"
334
- " fence rw, rw\n"
334
+ RISCV_FULL_BARRIER
335
335
"1:\n"
336
336
: [p ]"=&r" (prev ), [rc ]"=&r" (rc ), [c ]"+A" (v -> counter )
337
337
:
@@ -352,7 +352,7 @@ static __always_inline s64 arch_atomic64_dec_if_positive(atomic64_t *v)
352
352
" bltz %[rc], 1f\n"
353
353
" sc.d.rl %[rc], %[rc], %[c]\n"
354
354
" bnez %[rc], 0b\n"
355
- " fence rw, rw\n"
355
+ RISCV_FULL_BARRIER
356
356
"1:\n"
357
357
: [p ]"=&r" (prev ), [rc ]"=&r" (rc ), [c ]"+A" (v -> counter )
358
358
:
0 commit comments