diff options
author | Peter Zijlstra <peterz@infradead.org> | 2016-04-17 18:58:25 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-06-16 04:48:32 -0400 |
commit | b53d6bedbe781974097fd8c38263f6cc78ff9ea7 (patch) | |
tree | 76974ec2ced53b2af460b9d729a393a5f9a89525 | |
parent | 28aa2bda2211f4327d83b44a4f917b4a061b1c56 (diff) |
locking/atomic: Remove linux/atomic.h:atomic_fetch_or()
Since all architectures have this implemented now natively, remove this
dead code.
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-arch@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r-- | arch/alpha/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/arc/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/arm/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/arm64/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/avr32/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/frv/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/h8300/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/hexagon/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/m32r/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/m68k/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/metag/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/mips/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/mn10300/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/parisc/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/s390/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/sh/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/sparc/include/asm/atomic.h | 1 | ||||
-rw-r--r-- | arch/sparc/include/asm/atomic_32.h | 2 | ||||
-rw-r--r-- | arch/tile/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/x86/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | arch/xtensa/include/asm/atomic.h | 2 | ||||
-rw-r--r-- | include/asm-generic/atomic.h | 2 | ||||
-rw-r--r-- | include/linux/atomic.h | 21 |
23 files changed, 0 insertions, 64 deletions
diff --git a/arch/alpha/include/asm/atomic.h b/arch/alpha/include/asm/atomic.h index 8243f17999e3..5377ca8bb503 100644 --- a/arch/alpha/include/asm/atomic.h +++ b/arch/alpha/include/asm/atomic.h | |||
@@ -153,8 +153,6 @@ ATOMIC_OPS(sub) | |||
153 | #define atomic_andnot atomic_andnot | 153 | #define atomic_andnot atomic_andnot |
154 | #define atomic64_andnot atomic64_andnot | 154 | #define atomic64_andnot atomic64_andnot |
155 | 155 | ||
156 | #define atomic_fetch_or atomic_fetch_or | ||
157 | |||
158 | #undef ATOMIC_OPS | 156 | #undef ATOMIC_OPS |
159 | #define ATOMIC_OPS(op, asm) \ | 157 | #define ATOMIC_OPS(op, asm) \ |
160 | ATOMIC_OP(op, asm) \ | 158 | ATOMIC_OP(op, asm) \ |
diff --git a/arch/arc/include/asm/atomic.h b/arch/arc/include/asm/atomic.h index c066a21caaaf..bd9c51cb2bfd 100644 --- a/arch/arc/include/asm/atomic.h +++ b/arch/arc/include/asm/atomic.h | |||
@@ -189,8 +189,6 @@ ATOMIC_OPS(sub, -=, sub) | |||
189 | 189 | ||
190 | #define atomic_andnot atomic_andnot | 190 | #define atomic_andnot atomic_andnot |
191 | 191 | ||
192 | #define atomic_fetch_or atomic_fetch_or | ||
193 | |||
194 | #undef ATOMIC_OPS | 192 | #undef ATOMIC_OPS |
195 | #define ATOMIC_OPS(op, c_op, asm_op) \ | 193 | #define ATOMIC_OPS(op, c_op, asm_op) \ |
196 | ATOMIC_OP(op, c_op, asm_op) \ | 194 | ATOMIC_OP(op, c_op, asm_op) \ |
diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h index 0feb110ec542..66d0e215a773 100644 --- a/arch/arm/include/asm/atomic.h +++ b/arch/arm/include/asm/atomic.h | |||
@@ -201,8 +201,6 @@ static inline int atomic_fetch_##op(int i, atomic_t *v) \ | |||
201 | return val; \ | 201 | return val; \ |
202 | } | 202 | } |
203 | 203 | ||
204 | #define atomic_fetch_or atomic_fetch_or | ||
205 | |||
206 | static inline int atomic_cmpxchg(atomic_t *v, int old, int new) | 204 | static inline int atomic_cmpxchg(atomic_t *v, int old, int new) |
207 | { | 205 | { |
208 | int ret; | 206 | int ret; |
diff --git a/arch/arm64/include/asm/atomic.h b/arch/arm64/include/asm/atomic.h index 3128c3d7c1ff..c0235e0ff849 100644 --- a/arch/arm64/include/asm/atomic.h +++ b/arch/arm64/include/asm/atomic.h | |||
@@ -128,8 +128,6 @@ | |||
128 | #define __atomic_add_unless(v, a, u) ___atomic_add_unless(v, a, u,) | 128 | #define __atomic_add_unless(v, a, u) ___atomic_add_unless(v, a, u,) |
129 | #define atomic_andnot atomic_andnot | 129 | #define atomic_andnot atomic_andnot |
130 | 130 | ||
131 | #define atomic_fetch_or atomic_fetch_or | ||
132 | |||
133 | /* | 131 | /* |
134 | * 64-bit atomic operations. | 132 | * 64-bit atomic operations. |
135 | */ | 133 | */ |
diff --git a/arch/avr32/include/asm/atomic.h b/arch/avr32/include/asm/atomic.h index b8681fd495ef..3d5ce38a6f0b 100644 --- a/arch/avr32/include/asm/atomic.h +++ b/arch/avr32/include/asm/atomic.h | |||
@@ -66,8 +66,6 @@ ATOMIC_OP_RETURN(add, add, r) | |||
66 | ATOMIC_FETCH_OP (sub, sub, rKs21) | 66 | ATOMIC_FETCH_OP (sub, sub, rKs21) |
67 | ATOMIC_FETCH_OP (add, add, r) | 67 | ATOMIC_FETCH_OP (add, add, r) |
68 | 68 | ||
69 | #define atomic_fetch_or atomic_fetch_or | ||
70 | |||
71 | #define ATOMIC_OPS(op, asm_op) \ | 69 | #define ATOMIC_OPS(op, asm_op) \ |
72 | ATOMIC_OP_RETURN(op, asm_op, r) \ | 70 | ATOMIC_OP_RETURN(op, asm_op, r) \ |
73 | static inline void atomic_##op(int i, atomic_t *v) \ | 71 | static inline void atomic_##op(int i, atomic_t *v) \ |
diff --git a/arch/frv/include/asm/atomic.h b/arch/frv/include/asm/atomic.h index e3e06da0cd59..1c2a5e264fc7 100644 --- a/arch/frv/include/asm/atomic.h +++ b/arch/frv/include/asm/atomic.h | |||
@@ -74,8 +74,6 @@ static inline void atomic_dec(atomic_t *v) | |||
74 | #define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0) | 74 | #define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0) |
75 | #define atomic_inc_and_test(v) (atomic_add_return(1, (v)) == 0) | 75 | #define atomic_inc_and_test(v) (atomic_add_return(1, (v)) == 0) |
76 | 76 | ||
77 | #define atomic_fetch_or atomic_fetch_or | ||
78 | |||
79 | /* | 77 | /* |
80 | * 64-bit atomic ops | 78 | * 64-bit atomic ops |
81 | */ | 79 | */ |
diff --git a/arch/h8300/include/asm/atomic.h b/arch/h8300/include/asm/atomic.h index 0961b618bdde..349a47a918db 100644 --- a/arch/h8300/include/asm/atomic.h +++ b/arch/h8300/include/asm/atomic.h | |||
@@ -54,8 +54,6 @@ static inline void atomic_##op(int i, atomic_t *v) \ | |||
54 | ATOMIC_OP_RETURN(add, +=) | 54 | ATOMIC_OP_RETURN(add, +=) |
55 | ATOMIC_OP_RETURN(sub, -=) | 55 | ATOMIC_OP_RETURN(sub, -=) |
56 | 56 | ||
57 | #define atomic_fetch_or atomic_fetch_or | ||
58 | |||
59 | #define ATOMIC_OPS(op, c_op) \ | 57 | #define ATOMIC_OPS(op, c_op) \ |
60 | ATOMIC_OP(op, c_op) \ | 58 | ATOMIC_OP(op, c_op) \ |
61 | ATOMIC_FETCH_OP(op, c_op) | 59 | ATOMIC_FETCH_OP(op, c_op) |
diff --git a/arch/hexagon/include/asm/atomic.h b/arch/hexagon/include/asm/atomic.h index 07dbb3332b4a..a62ba368b27d 100644 --- a/arch/hexagon/include/asm/atomic.h +++ b/arch/hexagon/include/asm/atomic.h | |||
@@ -152,8 +152,6 @@ ATOMIC_OPS(sub) | |||
152 | #undef ATOMIC_OPS | 152 | #undef ATOMIC_OPS |
153 | #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_FETCH_OP(op) | 153 | #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_FETCH_OP(op) |
154 | 154 | ||
155 | #define atomic_fetch_or atomic_fetch_or | ||
156 | |||
157 | ATOMIC_OPS(and) | 155 | ATOMIC_OPS(and) |
158 | ATOMIC_OPS(or) | 156 | ATOMIC_OPS(or) |
159 | ATOMIC_OPS(xor) | 157 | ATOMIC_OPS(xor) |
diff --git a/arch/m32r/include/asm/atomic.h b/arch/m32r/include/asm/atomic.h index 8ba8a0ab5d5d..640cc1c7099f 100644 --- a/arch/m32r/include/asm/atomic.h +++ b/arch/m32r/include/asm/atomic.h | |||
@@ -121,8 +121,6 @@ ATOMIC_OPS(sub) | |||
121 | #undef ATOMIC_OPS | 121 | #undef ATOMIC_OPS |
122 | #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_FETCH_OP(op) | 122 | #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_FETCH_OP(op) |
123 | 123 | ||
124 | #define atomic_fetch_or atomic_fetch_or | ||
125 | |||
126 | ATOMIC_OPS(and) | 124 | ATOMIC_OPS(and) |
127 | ATOMIC_OPS(or) | 125 | ATOMIC_OPS(or) |
128 | ATOMIC_OPS(xor) | 126 | ATOMIC_OPS(xor) |
diff --git a/arch/m68k/include/asm/atomic.h b/arch/m68k/include/asm/atomic.h index 5cf9b3b1b6ac..3e03de7ae33b 100644 --- a/arch/m68k/include/asm/atomic.h +++ b/arch/m68k/include/asm/atomic.h | |||
@@ -119,8 +119,6 @@ ATOMIC_OPS(sub, -=, sub) | |||
119 | ATOMIC_OP(op, c_op, asm_op) \ | 119 | ATOMIC_OP(op, c_op, asm_op) \ |
120 | ATOMIC_FETCH_OP(op, c_op, asm_op) | 120 | ATOMIC_FETCH_OP(op, c_op, asm_op) |
121 | 121 | ||
122 | #define atomic_fetch_or atomic_fetch_or | ||
123 | |||
124 | ATOMIC_OPS(and, &=, and) | 122 | ATOMIC_OPS(and, &=, and) |
125 | ATOMIC_OPS(or, |=, or) | 123 | ATOMIC_OPS(or, |=, or) |
126 | ATOMIC_OPS(xor, ^=, eor) | 124 | ATOMIC_OPS(xor, ^=, eor) |
diff --git a/arch/metag/include/asm/atomic.h b/arch/metag/include/asm/atomic.h index 6ca210de8a7d..470e365f04ea 100644 --- a/arch/metag/include/asm/atomic.h +++ b/arch/metag/include/asm/atomic.h | |||
@@ -17,8 +17,6 @@ | |||
17 | #include <asm/atomic_lnkget.h> | 17 | #include <asm/atomic_lnkget.h> |
18 | #endif | 18 | #endif |
19 | 19 | ||
20 | #define atomic_fetch_or atomic_fetch_or | ||
21 | |||
22 | #define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) | 20 | #define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) |
23 | 21 | ||
24 | #define atomic_dec_return(v) atomic_sub_return(1, (v)) | 22 | #define atomic_dec_return(v) atomic_sub_return(1, (v)) |
diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h index 431079f8e483..387ce288334e 100644 --- a/arch/mips/include/asm/atomic.h +++ b/arch/mips/include/asm/atomic.h | |||
@@ -194,8 +194,6 @@ ATOMIC_OPS(sub, -=, subu) | |||
194 | ATOMIC_OP(op, c_op, asm_op) \ | 194 | ATOMIC_OP(op, c_op, asm_op) \ |
195 | ATOMIC_FETCH_OP(op, c_op, asm_op) | 195 | ATOMIC_FETCH_OP(op, c_op, asm_op) |
196 | 196 | ||
197 | #define atomic_fetch_or atomic_fetch_or | ||
198 | |||
199 | ATOMIC_OPS(and, &=, and) | 197 | ATOMIC_OPS(and, &=, and) |
200 | ATOMIC_OPS(or, |=, or) | 198 | ATOMIC_OPS(or, |=, or) |
201 | ATOMIC_OPS(xor, ^=, xor) | 199 | ATOMIC_OPS(xor, ^=, xor) |
diff --git a/arch/mn10300/include/asm/atomic.h b/arch/mn10300/include/asm/atomic.h index 3580f789f3a6..36389efd45e8 100644 --- a/arch/mn10300/include/asm/atomic.h +++ b/arch/mn10300/include/asm/atomic.h | |||
@@ -113,8 +113,6 @@ ATOMIC_OPS(sub) | |||
113 | #undef ATOMIC_OPS | 113 | #undef ATOMIC_OPS |
114 | #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_FETCH_OP(op) | 114 | #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_FETCH_OP(op) |
115 | 115 | ||
116 | #define atomic_fetch_or atomic_fetch_or | ||
117 | |||
118 | ATOMIC_OPS(and) | 116 | ATOMIC_OPS(and) |
119 | ATOMIC_OPS(or) | 117 | ATOMIC_OPS(or) |
120 | ATOMIC_OPS(xor) | 118 | ATOMIC_OPS(xor) |
diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h index 29df1f871910..5394b9c5f914 100644 --- a/arch/parisc/include/asm/atomic.h +++ b/arch/parisc/include/asm/atomic.h | |||
@@ -148,8 +148,6 @@ ATOMIC_OPS(sub, -=) | |||
148 | ATOMIC_OP(op, c_op) \ | 148 | ATOMIC_OP(op, c_op) \ |
149 | ATOMIC_FETCH_OP(op, c_op) | 149 | ATOMIC_FETCH_OP(op, c_op) |
150 | 150 | ||
151 | #define atomic_fetch_or atomic_fetch_or | ||
152 | |||
153 | ATOMIC_OPS(and, &=) | 151 | ATOMIC_OPS(and, &=) |
154 | ATOMIC_OPS(or, |=) | 152 | ATOMIC_OPS(or, |=) |
155 | ATOMIC_OPS(xor, ^=) | 153 | ATOMIC_OPS(xor, ^=) |
diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h index 2324e759b544..d28cc2f5b7b2 100644 --- a/arch/s390/include/asm/atomic.h +++ b/arch/s390/include/asm/atomic.h | |||
@@ -135,8 +135,6 @@ static inline int atomic_fetch_##op(int i, atomic_t *v) \ | |||
135 | return __ATOMIC_LOOP(v, i, __ATOMIC_##OP, __ATOMIC_BARRIER); \ | 135 | return __ATOMIC_LOOP(v, i, __ATOMIC_##OP, __ATOMIC_BARRIER); \ |
136 | } | 136 | } |
137 | 137 | ||
138 | #define atomic_fetch_or atomic_fetch_or | ||
139 | |||
140 | ATOMIC_OPS(and, AND) | 138 | ATOMIC_OPS(and, AND) |
141 | ATOMIC_OPS(or, OR) | 139 | ATOMIC_OPS(or, OR) |
142 | ATOMIC_OPS(xor, XOR) | 140 | ATOMIC_OPS(xor, XOR) |
diff --git a/arch/sh/include/asm/atomic.h b/arch/sh/include/asm/atomic.h index d93ed7ce1b2f..c399e1c55685 100644 --- a/arch/sh/include/asm/atomic.h +++ b/arch/sh/include/asm/atomic.h | |||
@@ -25,8 +25,6 @@ | |||
25 | #include <asm/atomic-irq.h> | 25 | #include <asm/atomic-irq.h> |
26 | #endif | 26 | #endif |
27 | 27 | ||
28 | #define atomic_fetch_or atomic_fetch_or | ||
29 | |||
30 | #define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) | 28 | #define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0) |
31 | #define atomic_dec_return(v) atomic_sub_return(1, (v)) | 29 | #define atomic_dec_return(v) atomic_sub_return(1, (v)) |
32 | #define atomic_inc_return(v) atomic_add_return(1, (v)) | 30 | #define atomic_inc_return(v) atomic_add_return(1, (v)) |
diff --git a/arch/sparc/include/asm/atomic.h b/arch/sparc/include/asm/atomic.h index 1f741bcc73b7..8ff83d8cc33f 100644 --- a/arch/sparc/include/asm/atomic.h +++ b/arch/sparc/include/asm/atomic.h | |||
@@ -5,5 +5,4 @@ | |||
5 | #else | 5 | #else |
6 | #include <asm/atomic_32.h> | 6 | #include <asm/atomic_32.h> |
7 | #endif | 7 | #endif |
8 | #define atomic_fetch_or atomic_fetch_or | ||
9 | #endif | 8 | #endif |
diff --git a/arch/sparc/include/asm/atomic_32.h b/arch/sparc/include/asm/atomic_32.h index 5cfb20a599d9..ee3f11c43cda 100644 --- a/arch/sparc/include/asm/atomic_32.h +++ b/arch/sparc/include/asm/atomic_32.h | |||
@@ -36,8 +36,6 @@ void atomic_set(atomic_t *, int); | |||
36 | #define atomic_inc(v) ((void)atomic_add_return( 1, (v))) | 36 | #define atomic_inc(v) ((void)atomic_add_return( 1, (v))) |
37 | #define atomic_dec(v) ((void)atomic_add_return( -1, (v))) | 37 | #define atomic_dec(v) ((void)atomic_add_return( -1, (v))) |
38 | 38 | ||
39 | #define atomic_fetch_or atomic_fetch_or | ||
40 | |||
41 | #define atomic_and(i, v) ((void)atomic_fetch_and((i), (v))) | 39 | #define atomic_and(i, v) ((void)atomic_fetch_and((i), (v))) |
42 | #define atomic_or(i, v) ((void)atomic_fetch_or((i), (v))) | 40 | #define atomic_or(i, v) ((void)atomic_fetch_or((i), (v))) |
43 | #define atomic_xor(i, v) ((void)atomic_fetch_xor((i), (v))) | 41 | #define atomic_xor(i, v) ((void)atomic_fetch_xor((i), (v))) |
diff --git a/arch/tile/include/asm/atomic.h b/arch/tile/include/asm/atomic.h index 9807030557c4..8dda3c8ff5ab 100644 --- a/arch/tile/include/asm/atomic.h +++ b/arch/tile/include/asm/atomic.h | |||
@@ -48,8 +48,6 @@ static inline int atomic_read(const atomic_t *v) | |||
48 | 48 | ||
49 | #define atomic_fetch_sub(i, v) atomic_fetch_add(-(int)(i), (v)) | 49 | #define atomic_fetch_sub(i, v) atomic_fetch_add(-(int)(i), (v)) |
50 | 50 | ||
51 | #define atomic_fetch_or atomic_fetch_or | ||
52 | |||
53 | /** | 51 | /** |
54 | * atomic_sub - subtract integer from atomic variable | 52 | * atomic_sub - subtract integer from atomic variable |
55 | * @i: integer value to subtract | 53 | * @i: integer value to subtract |
diff --git a/arch/x86/include/asm/atomic.h b/arch/x86/include/asm/atomic.h index 73b8463b89e9..a58b99811105 100644 --- a/arch/x86/include/asm/atomic.h +++ b/arch/x86/include/asm/atomic.h | |||
@@ -217,8 +217,6 @@ static inline int atomic_fetch_##op(int i, atomic_t *v) \ | |||
217 | ATOMIC_OP(op) \ | 217 | ATOMIC_OP(op) \ |
218 | ATOMIC_FETCH_OP(op, c_op) | 218 | ATOMIC_FETCH_OP(op, c_op) |
219 | 219 | ||
220 | #define atomic_fetch_or atomic_fetch_or | ||
221 | |||
222 | ATOMIC_OPS(and, &) | 220 | ATOMIC_OPS(and, &) |
223 | ATOMIC_OPS(or , |) | 221 | ATOMIC_OPS(or , |) |
224 | ATOMIC_OPS(xor, ^) | 222 | ATOMIC_OPS(xor, ^) |
diff --git a/arch/xtensa/include/asm/atomic.h b/arch/xtensa/include/asm/atomic.h index d95a8aa1a6d3..e7a23f2a519a 100644 --- a/arch/xtensa/include/asm/atomic.h +++ b/arch/xtensa/include/asm/atomic.h | |||
@@ -188,8 +188,6 @@ ATOMIC_OPS(sub) | |||
188 | #undef ATOMIC_OPS | 188 | #undef ATOMIC_OPS |
189 | #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_FETCH_OP(op) | 189 | #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_FETCH_OP(op) |
190 | 190 | ||
191 | #define atomic_fetch_or atomic_fetch_or | ||
192 | |||
193 | ATOMIC_OPS(and) | 191 | ATOMIC_OPS(and) |
194 | ATOMIC_OPS(or) | 192 | ATOMIC_OPS(or) |
195 | ATOMIC_OPS(xor) | 193 | ATOMIC_OPS(xor) |
diff --git a/include/asm-generic/atomic.h b/include/asm-generic/atomic.h index a2304ccf4ed0..9ed8b987185b 100644 --- a/include/asm-generic/atomic.h +++ b/include/asm-generic/atomic.h | |||
@@ -137,8 +137,6 @@ ATOMIC_FETCH_OP(and, &) | |||
137 | #endif | 137 | #endif |
138 | 138 | ||
139 | #ifndef atomic_fetch_or | 139 | #ifndef atomic_fetch_or |
140 | #define atomic_fetch_or atomic_fetch_or | ||
141 | |||
142 | ATOMIC_FETCH_OP(or, |) | 140 | ATOMIC_FETCH_OP(or, |) |
143 | #endif | 141 | #endif |
144 | 142 | ||
diff --git a/include/linux/atomic.h b/include/linux/atomic.h index 2e6c013ac5a4..0b3802d33125 100644 --- a/include/linux/atomic.h +++ b/include/linux/atomic.h | |||
@@ -573,27 +573,6 @@ static inline int atomic_dec_if_positive(atomic_t *v) | |||
573 | } | 573 | } |
574 | #endif | 574 | #endif |
575 | 575 | ||
576 | /** | ||
577 | * atomic_fetch_or - perform *p |= mask and return old value of *p | ||
578 | * @mask: mask to OR on the atomic_t | ||
579 | * @p: pointer to atomic_t | ||
580 | */ | ||
581 | #ifndef atomic_fetch_or | ||
582 | static inline int atomic_fetch_or(int mask, atomic_t *p) | ||
583 | { | ||
584 | int old, val = atomic_read(p); | ||
585 | |||
586 | for (;;) { | ||
587 | old = atomic_cmpxchg(p, val, val | mask); | ||
588 | if (old == val) | ||
589 | break; | ||
590 | val = old; | ||
591 | } | ||
592 | |||
593 | return old; | ||
594 | } | ||
595 | #endif | ||
596 | |||
597 | #ifdef CONFIG_GENERIC_ATOMIC64 | 576 | #ifdef CONFIG_GENERIC_ATOMIC64 |
598 | #include <asm-generic/atomic64.h> | 577 | #include <asm-generic/atomic64.h> |
599 | #endif | 578 | #endif |