diff options
Diffstat (limited to 'include/asm-mips/bitops.h')
-rw-r--r-- | include/asm-mips/bitops.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/include/asm-mips/bitops.h b/include/asm-mips/bitops.h index d9e81af53f78..148bc79557f1 100644 --- a/include/asm-mips/bitops.h +++ b/include/asm-mips/bitops.h | |||
@@ -38,8 +38,8 @@ | |||
38 | /* | 38 | /* |
39 | * clear_bit() doesn't provide any barrier for the compiler. | 39 | * clear_bit() doesn't provide any barrier for the compiler. |
40 | */ | 40 | */ |
41 | #define smp_mb__before_clear_bit() smp_mb() | 41 | #define smp_mb__before_clear_bit() smp_llsc_mb() |
42 | #define smp_mb__after_clear_bit() smp_mb() | 42 | #define smp_mb__after_clear_bit() smp_llsc_mb() |
43 | 43 | ||
44 | /* | 44 | /* |
45 | * set_bit - Atomically set a bit in memory | 45 | * set_bit - Atomically set a bit in memory |
@@ -289,7 +289,7 @@ static inline int test_and_set_bit(unsigned long nr, | |||
289 | raw_local_irq_restore(flags); | 289 | raw_local_irq_restore(flags); |
290 | } | 290 | } |
291 | 291 | ||
292 | smp_mb(); | 292 | smp_llsc_mb(); |
293 | 293 | ||
294 | return res != 0; | 294 | return res != 0; |
295 | } | 295 | } |
@@ -377,7 +377,7 @@ static inline int test_and_clear_bit(unsigned long nr, | |||
377 | raw_local_irq_restore(flags); | 377 | raw_local_irq_restore(flags); |
378 | } | 378 | } |
379 | 379 | ||
380 | smp_mb(); | 380 | smp_llsc_mb(); |
381 | 381 | ||
382 | return res != 0; | 382 | return res != 0; |
383 | } | 383 | } |
@@ -445,7 +445,7 @@ static inline int test_and_change_bit(unsigned long nr, | |||
445 | raw_local_irq_restore(flags); | 445 | raw_local_irq_restore(flags); |
446 | } | 446 | } |
447 | 447 | ||
448 | smp_mb(); | 448 | smp_llsc_mb(); |
449 | 449 | ||
450 | return res != 0; | 450 | return res != 0; |
451 | } | 451 | } |