Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 148817ba authored by Akinobu Mita's avatar Akinobu Mita Committed by Linus Torvalds
Browse files

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: default avatarAkinobu Mita <akinobu.mita@gmail.com>
Suggested-by: default avatarAndreas Dilger <adilger@dilger.ca>
Suggested-by: default avatarArnd Bergmann <arnd@arndb.de>
Acked-by: default avatarArnd Bergmann <arnd@arndb.de>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent b2c9cd37
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -456,8 +456,7 @@ sched_find_first_bit(const unsigned long b[2])

#include <asm-generic/bitops/le.h>

#define ext2_set_bit_atomic(l,n,a)   test_and_set_bit(n,a)
#define ext2_clear_bit_atomic(l,n,a) test_and_clear_bit(n,a)
#include <asm-generic/bitops/ext2-atomic-setbit.h>

#endif /* __KERNEL__ */

+1 −4
Original line number Diff line number Diff line
@@ -310,10 +310,7 @@ static inline int find_next_bit_le(const void *p, int size, int offset)
/*
 * Ext2 is defined to use little-endian byte ordering.
 */
#define ext2_set_bit_atomic(lock, nr, p)	\
		test_and_set_bit_le(nr, p)
#define ext2_clear_bit_atomic(lock, nr, p)	\
		test_and_clear_bit_le(nr, p)
#include <asm-generic/bitops/ext2-atomic-setbit.h>

#endif /* __KERNEL__ */

+1 −2
Original line number Diff line number Diff line
@@ -156,8 +156,7 @@ static inline int test_and_change_bit(int nr, volatile unsigned long *addr)

#include <asm-generic/bitops/le.h>

#define ext2_set_bit_atomic(l,n,a)   test_and_set_bit(n,a)
#define ext2_clear_bit_atomic(l,n,a) test_and_clear_bit(n,a)
#include <asm-generic/bitops/ext2-atomic-setbit.h>

#include <asm-generic/bitops/sched.h>

+1 −2
Original line number Diff line number Diff line
@@ -403,8 +403,7 @@ int __ilog2_u64(u64 n)

#include <asm-generic/bitops/le.h>

#define ext2_set_bit_atomic(lock,nr,addr)	test_and_set_bit  ((nr) ^ 0x18, (addr))
#define ext2_clear_bit_atomic(lock,nr,addr)	test_and_clear_bit((nr) ^ 0x18, (addr))
#include <asm-generic/bitops/ext2-atomic-setbit.h>

#endif /* __KERNEL__ */

+1 −2
Original line number Diff line number Diff line
@@ -458,8 +458,7 @@ static __inline__ unsigned long __arch_hweight64(unsigned long x)

#include <asm-generic/bitops/le.h>

#define ext2_set_bit_atomic(l,n,a)	test_and_set_bit(n,a)
#define ext2_clear_bit_atomic(l,n,a)	test_and_clear_bit(n,a)
#include <asm-generic/bitops/ext2-atomic-setbit.h>

#include <asm-generic/bitops/sched.h>

Loading