aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-generic
diff options
context:
space:
mode:
authorAkinobu Mita <akinobu.mita@gmail.com>2011-07-26 19:09:04 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-07-26 19:49:46 -0400
commit148817ba092f9f6edd35bad3c6c6b8e8f90fe2ed (patch)
tree75cc7df62c9713bc1a44738026878a79653faa38 /include/asm-generic
parentb2c9cd3793e5878e301ec2219785a7b8ca402ef1 (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.h11
-rw-r--r--include/asm-generic/bitops/ext2-atomic.h4
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; \