diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2011-07-26 19:09:04 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-26 19:49:46 -0400 |
commit | 148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed (patch) | |
tree | 75cc7df62c9713bc1a44738026878a79653faa38 /include/asm-generic | |
parent | b2c9cd3793e5878e301ec2219785a7b8ca402ef1 (diff) |
asm-generic: add another generic ext2 atomic bitops
The majority of architectures implement ext2 atomic bitops as
test_and_{set,clear}_bit() without spinlock.
This adds this type of generic implementation in ext2-atomic-setbit.h and
use it wherever possible.
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Suggested-by: Andreas Dilger <adilger@dilger.ca>
Suggested-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/asm-generic')
-rw-r--r-- | include/asm-generic/bitops/ext2-atomic-setbit.h | 11 | ||||
-rw-r--r-- | include/asm-generic/bitops/ext2-atomic.h | 4 |
2 files changed, 15 insertions, 0 deletions
diff --git a/include/asm-generic/bitops/ext2-atomic-setbit.h b/include/asm-generic/bitops/ext2-atomic-setbit.h new file mode 100644 index 000000000000..5a0997857b34 --- /dev/null +++ b/include/asm-generic/bitops/ext2-atomic-setbit.h | |||
@@ -0,0 +1,11 @@ | |||
1 | #ifndef _ASM_GENERIC_BITOPS_EXT2_ATOMIC_SETBIT_H_ | ||
2 | #define _ASM_GENERIC_BITOPS_EXT2_ATOMIC_SETBIT_H_ | ||
3 | |||
4 | /* | ||
5 | * Atomic bitops based version of ext2 atomic bitops | ||
6 | */ | ||
7 | |||
8 | #define ext2_set_bit_atomic(l, nr, addr) test_and_set_bit_le(nr, addr) | ||
9 | #define ext2_clear_bit_atomic(l, nr, addr) test_and_clear_bit_le(nr, addr) | ||
10 | |||
11 | #endif /* _ASM_GENERIC_BITOPS_EXT2_ATOMIC_SETBIT_H_ */ | ||
diff --git a/include/asm-generic/bitops/ext2-atomic.h b/include/asm-generic/bitops/ext2-atomic.h index ecf1c9d8a7cc..87f0f109d7f1 100644 --- a/include/asm-generic/bitops/ext2-atomic.h +++ b/include/asm-generic/bitops/ext2-atomic.h | |||
@@ -1,6 +1,10 @@ | |||
1 | #ifndef _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ | 1 | #ifndef _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ |
2 | #define _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ | 2 | #define _ASM_GENERIC_BITOPS_EXT2_ATOMIC_H_ |
3 | 3 | ||
4 | /* | ||
5 | * Spinlock based version of ext2 atomic bitops | ||
6 | */ | ||
7 | |||
4 | #define ext2_set_bit_atomic(lock, nr, addr) \ | 8 | #define ext2_set_bit_atomic(lock, nr, addr) \ |
5 | ({ \ | 9 | ({ \ |
6 | int ret; \ | 10 | int ret; \ |