summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2016-04-17 18:58:25 -0400
committerIngo Molnar <mingo@kernel.org>2016-06-16 04:48:32 -0400
commitb53d6bedbe781974097fd8c38263f6cc78ff9ea7 (patch)
tree76974ec2ced53b2af460b9d729a393a5f9a89525
parent28aa2bda2211f4327d83b44a4f917b4a061b1c56 (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.h2
-rw-r--r--arch/arc/include/asm/atomic.h2
-rw-r--r--arch/arm/include/asm/atomic.h2
-rw-r--r--arch/arm64/include/asm/atomic.h2
-rw-r--r--arch/avr32/include/asm/atomic.h2
-rw-r--r--arch/frv/include/asm/atomic.h2
-rw-r--r--arch/h8300/include/asm/atomic.h2
-rw-r--r--arch/hexagon/include/asm/atomic.h2
-rw-r--r--arch/m32r/include/asm/atomic.h2
-rw-r--r--arch/m68k/include/asm/atomic.h2
-rw-r--r--arch/metag/include/asm/atomic.h2
-rw-r--r--arch/mips/include/asm/atomic.h2
-rw-r--r--arch/mn10300/include/asm/atomic.h2
-rw-r--r--arch/parisc/include/asm/atomic.h2
-rw-r--r--arch/s390/include/asm/atomic.h2
-rw-r--r--arch/sh/include/asm/atomic.h2
-rw-r--r--arch/sparc/include/asm/atomic.h1
-rw-r--r--arch/sparc/include/asm/atomic_32.h2
-rw-r--r--arch/tile/include/asm/atomic.h2
-rw-r--r--arch/x86/include/asm/atomic.h2
-rw-r--r--arch/xtensa/include/asm/atomic.h2
-rw-r--r--include/asm-generic/atomic.h2
-rw-r--r--include/linux/atomic.h21
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
206static inline int atomic_cmpxchg(atomic_t *v, int old, int new) 204static 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)
66ATOMIC_FETCH_OP (sub, sub, rKs21) 66ATOMIC_FETCH_OP (sub, sub, rKs21)
67ATOMIC_FETCH_OP (add, add, r) 67ATOMIC_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) \
72ATOMIC_OP_RETURN(op, asm_op, r) \ 70ATOMIC_OP_RETURN(op, asm_op, r) \
73static inline void atomic_##op(int i, atomic_t *v) \ 71static 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) \
54ATOMIC_OP_RETURN(add, +=) 54ATOMIC_OP_RETURN(add, +=)
55ATOMIC_OP_RETURN(sub, -=) 55ATOMIC_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
157ATOMIC_OPS(and) 155ATOMIC_OPS(and)
158ATOMIC_OPS(or) 156ATOMIC_OPS(or)
159ATOMIC_OPS(xor) 157ATOMIC_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
126ATOMIC_OPS(and) 124ATOMIC_OPS(and)
127ATOMIC_OPS(or) 125ATOMIC_OPS(or)
128ATOMIC_OPS(xor) 126ATOMIC_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
124ATOMIC_OPS(and, &=, and) 122ATOMIC_OPS(and, &=, and)
125ATOMIC_OPS(or, |=, or) 123ATOMIC_OPS(or, |=, or)
126ATOMIC_OPS(xor, ^=, eor) 124ATOMIC_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
199ATOMIC_OPS(and, &=, and) 197ATOMIC_OPS(and, &=, and)
200ATOMIC_OPS(or, |=, or) 198ATOMIC_OPS(or, |=, or)
201ATOMIC_OPS(xor, ^=, xor) 199ATOMIC_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
118ATOMIC_OPS(and) 116ATOMIC_OPS(and)
119ATOMIC_OPS(or) 117ATOMIC_OPS(or)
120ATOMIC_OPS(xor) 118ATOMIC_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
153ATOMIC_OPS(and, &=) 151ATOMIC_OPS(and, &=)
154ATOMIC_OPS(or, |=) 152ATOMIC_OPS(or, |=)
155ATOMIC_OPS(xor, ^=) 153ATOMIC_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
140ATOMIC_OPS(and, AND) 138ATOMIC_OPS(and, AND)
141ATOMIC_OPS(or, OR) 139ATOMIC_OPS(or, OR)
142ATOMIC_OPS(xor, XOR) 140ATOMIC_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
222ATOMIC_OPS(and, &) 220ATOMIC_OPS(and, &)
223ATOMIC_OPS(or , |) 221ATOMIC_OPS(or , |)
224ATOMIC_OPS(xor, ^) 222ATOMIC_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
193ATOMIC_OPS(and) 191ATOMIC_OPS(and)
194ATOMIC_OPS(or) 192ATOMIC_OPS(or)
195ATOMIC_OPS(xor) 193ATOMIC_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
142ATOMIC_FETCH_OP(or, |) 140ATOMIC_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
582static 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