diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-03 15:57:53 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-03 15:57:53 -0400 |
commit | 776edb59317ada867dfcddde40b55648beeb0078 (patch) | |
tree | f6a6136374642323cfefd7d6399ea429f9018ade /arch/blackfin | |
parent | 59a3d4c3631e553357b7305dc09db1990aa6757c (diff) | |
parent | 3cf2f34e1a3d4d5ff209d087925cf950e52f4805 (diff) |
Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next
Pull core locking updates from Ingo Molnar:
"The main changes in this cycle were:
- reduced/streamlined smp_mb__*() interface that allows more usecases
and makes the existing ones less buggy, especially in rarer
architectures
- add rwsem implementation comments
- bump up lockdep limits"
* 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (33 commits)
rwsem: Add comments to explain the meaning of the rwsem's count field
lockdep: Increase static allocations
arch: Mass conversion of smp_mb__*()
arch,doc: Convert smp_mb__*()
arch,xtensa: Convert smp_mb__*()
arch,x86: Convert smp_mb__*()
arch,tile: Convert smp_mb__*()
arch,sparc: Convert smp_mb__*()
arch,sh: Convert smp_mb__*()
arch,score: Convert smp_mb__*()
arch,s390: Convert smp_mb__*()
arch,powerpc: Convert smp_mb__*()
arch,parisc: Convert smp_mb__*()
arch,openrisc: Convert smp_mb__*()
arch,mn10300: Convert smp_mb__*()
arch,mips: Convert smp_mb__*()
arch,metag: Convert smp_mb__*()
arch,m68k: Convert smp_mb__*()
arch,m32r: Convert smp_mb__*()
arch,ia64: Convert smp_mb__*()
...
Diffstat (limited to 'arch/blackfin')
-rw-r--r-- | arch/blackfin/include/asm/barrier.h | 3 | ||||
-rw-r--r-- | arch/blackfin/include/asm/bitops.h | 14 |
2 files changed, 5 insertions, 12 deletions
diff --git a/arch/blackfin/include/asm/barrier.h b/arch/blackfin/include/asm/barrier.h index 19283a16ac08..420006877998 100644 --- a/arch/blackfin/include/asm/barrier.h +++ b/arch/blackfin/include/asm/barrier.h | |||
@@ -27,6 +27,9 @@ | |||
27 | 27 | ||
28 | #endif /* !CONFIG_SMP */ | 28 | #endif /* !CONFIG_SMP */ |
29 | 29 | ||
30 | #define smp_mb__before_atomic() barrier() | ||
31 | #define smp_mb__after_atomic() barrier() | ||
32 | |||
30 | #include <asm-generic/barrier.h> | 33 | #include <asm-generic/barrier.h> |
31 | 34 | ||
32 | #endif /* _BLACKFIN_BARRIER_H */ | 35 | #endif /* _BLACKFIN_BARRIER_H */ |
diff --git a/arch/blackfin/include/asm/bitops.h b/arch/blackfin/include/asm/bitops.h index 0ca40dd44724..b298b654a26f 100644 --- a/arch/blackfin/include/asm/bitops.h +++ b/arch/blackfin/include/asm/bitops.h | |||
@@ -27,21 +27,17 @@ | |||
27 | 27 | ||
28 | #include <asm-generic/bitops/ext2-atomic.h> | 28 | #include <asm-generic/bitops/ext2-atomic.h> |
29 | 29 | ||
30 | #include <asm/barrier.h> | ||
31 | |||
30 | #ifndef CONFIG_SMP | 32 | #ifndef CONFIG_SMP |
31 | #include <linux/irqflags.h> | 33 | #include <linux/irqflags.h> |
32 | |||
33 | /* | 34 | /* |
34 | * clear_bit may not imply a memory barrier | 35 | * clear_bit may not imply a memory barrier |
35 | */ | 36 | */ |
36 | #ifndef smp_mb__before_clear_bit | ||
37 | #define smp_mb__before_clear_bit() smp_mb() | ||
38 | #define smp_mb__after_clear_bit() smp_mb() | ||
39 | #endif | ||
40 | #include <asm-generic/bitops/atomic.h> | 37 | #include <asm-generic/bitops/atomic.h> |
41 | #include <asm-generic/bitops/non-atomic.h> | 38 | #include <asm-generic/bitops/non-atomic.h> |
42 | #else | 39 | #else |
43 | 40 | ||
44 | #include <asm/barrier.h> | ||
45 | #include <asm/byteorder.h> /* swab32 */ | 41 | #include <asm/byteorder.h> /* swab32 */ |
46 | #include <linux/linkage.h> | 42 | #include <linux/linkage.h> |
47 | 43 | ||
@@ -101,12 +97,6 @@ static inline int test_and_change_bit(int nr, volatile unsigned long *addr) | |||
101 | return __raw_bit_test_toggle_asm(a, nr & 0x1f); | 97 | return __raw_bit_test_toggle_asm(a, nr & 0x1f); |
102 | } | 98 | } |
103 | 99 | ||
104 | /* | ||
105 | * clear_bit() doesn't provide any barrier for the compiler. | ||
106 | */ | ||
107 | #define smp_mb__before_clear_bit() barrier() | ||
108 | #define smp_mb__after_clear_bit() barrier() | ||
109 | |||
110 | #define test_bit __skip_test_bit | 100 | #define test_bit __skip_test_bit |
111 | #include <asm-generic/bitops/non-atomic.h> | 101 | #include <asm-generic/bitops/non-atomic.h> |
112 | #undef test_bit | 102 | #undef test_bit |