[PATCH] bitops: use non atomic operations for minix_*_bit() and ext2_*_bit()
[linux-3.10.git] / include / asm-sparc64 / bitops.h
index 9c5e719..2361f87 100644 (file)
@@ -72,8 +72,8 @@ static inline int __test_and_change_bit(int nr, volatile unsigned long *addr)
 }
 
 #ifdef CONFIG_SMP
-#define smp_mb__before_clear_bit()     membar("#StoreLoad | #LoadLoad")
-#define smp_mb__after_clear_bit()      membar("#StoreLoad | #StoreStore")
+#define smp_mb__before_clear_bit()     membar_storeload_loadload()
+#define smp_mb__after_clear_bit()      membar_storeload_storestore()
 #else
 #define smp_mb__before_clear_bit()     barrier()
 #define smp_mb__after_clear_bit()      barrier()
@@ -119,6 +119,7 @@ static inline unsigned long __ffs(unsigned long word)
  */
 
 #define fls(x) generic_fls(x)
+#define fls64(x)   generic_fls64(x)
 
 #ifdef __KERNEL__
 
@@ -279,11 +280,11 @@ extern unsigned long find_next_zero_le_bit(unsigned long *, unsigned long, unsig
 
 /* Bitmap functions for the minix filesystem.  */
 #define minix_test_and_set_bit(nr,addr)        \
-       test_and_set_bit((nr),(unsigned long *)(addr))
+       __test_and_set_bit((nr),(unsigned long *)(addr))
 #define minix_set_bit(nr,addr) \
-       set_bit((nr),(unsigned long *)(addr))
+       __set_bit((nr),(unsigned long *)(addr))
 #define minix_test_and_clear_bit(nr,addr) \
-       test_and_clear_bit((nr),(unsigned long *)(addr))
+       __test_and_clear_bit((nr),(unsigned long *)(addr))
 #define minix_test_bit(nr,addr)        \
        test_bit((nr),(unsigned long *)(addr))
 #define minix_find_first_zero_bit(addr,size) \