diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2007-10-03 09:29:19 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2007-10-03 09:30:52 -0400 |
commit | 9ea0f043fec38fadb0101fbf29563a5635f42e93 (patch) | |
tree | c64ab5faadda7030b2aaf8f63eeb6be9dbd4b672 /include/asm-mips | |
parent | fef74705ea310acd716c2722bfeb0f796cf23640 (diff) |
[MIPS] Terminally fix local_{dec,sub}_if_positive
They contain 64-bit instructions so wouldn't work on 32-bit kernels or
32-bit hardware. Since there are no users, blow them away. They
probably were only ever created because there are atomic_sub_if_positive
and atomic_dec_if_positive which exist only for sake of semaphores.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'include/asm-mips')
-rw-r--r-- | include/asm-mips/local.h | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/include/asm-mips/local.h b/include/asm-mips/local.h index 7034a01566f9..f9a5ce5c9af1 100644 --- a/include/asm-mips/local.h +++ b/include/asm-mips/local.h | |||
@@ -115,68 +115,6 @@ static __inline__ long local_sub_return(long i, local_t * l) | |||
115 | return result; | 115 | return result; |
116 | } | 116 | } |
117 | 117 | ||
118 | /* | ||
119 | * local_sub_if_positive - conditionally subtract integer from atomic variable | ||
120 | * @i: integer value to subtract | ||
121 | * @l: pointer of type local_t | ||
122 | * | ||
123 | * Atomically test @l and subtract @i if @l is greater or equal than @i. | ||
124 | * The function returns the old value of @l minus @i. | ||
125 | */ | ||
126 | static __inline__ long local_sub_if_positive(long i, local_t * l) | ||
127 | { | ||
128 | unsigned long result; | ||
129 | |||
130 | if (cpu_has_llsc && R10000_LLSC_WAR) { | ||
131 | unsigned long temp; | ||
132 | |||
133 | __asm__ __volatile__( | ||
134 | " .set mips3 \n" | ||
135 | "1:" __LL "%1, %2 # local_sub_if_positive\n" | ||
136 | " dsubu %0, %1, %3 \n" | ||
137 | " bltz %0, 1f \n" | ||
138 | __SC "%0, %2 \n" | ||
139 | " .set noreorder \n" | ||
140 | " beqzl %0, 1b \n" | ||
141 | " dsubu %0, %1, %3 \n" | ||
142 | " .set reorder \n" | ||
143 | "1: \n" | ||
144 | " .set mips0 \n" | ||
145 | : "=&r" (result), "=&r" (temp), "=m" (l->a.counter) | ||
146 | : "Ir" (i), "m" (l->a.counter) | ||
147 | : "memory"); | ||
148 | } else if (cpu_has_llsc) { | ||
149 | unsigned long temp; | ||
150 | |||
151 | __asm__ __volatile__( | ||
152 | " .set mips3 \n" | ||
153 | "1:" __LL "%1, %2 # local_sub_if_positive\n" | ||
154 | " dsubu %0, %1, %3 \n" | ||
155 | " bltz %0, 1f \n" | ||
156 | __SC "%0, %2 \n" | ||
157 | " .set noreorder \n" | ||
158 | " beqz %0, 1b \n" | ||
159 | " dsubu %0, %1, %3 \n" | ||
160 | " .set reorder \n" | ||
161 | "1: \n" | ||
162 | " .set mips0 \n" | ||
163 | : "=&r" (result), "=&r" (temp), "=m" (l->a.counter) | ||
164 | : "Ir" (i), "m" (l->a.counter) | ||
165 | : "memory"); | ||
166 | } else { | ||
167 | unsigned long flags; | ||
168 | |||
169 | local_irq_save(flags); | ||
170 | result = l->a.counter; | ||
171 | result -= i; | ||
172 | if (result >= 0) | ||
173 | l->a.counter = result; | ||
174 | local_irq_restore(flags); | ||
175 | } | ||
176 | |||
177 | return result; | ||
178 | } | ||
179 | |||
180 | #define local_cmpxchg(l, o, n) \ | 118 | #define local_cmpxchg(l, o, n) \ |
181 | ((long)cmpxchg_local(&((l)->a.counter), (o), (n))) | 119 | ((long)cmpxchg_local(&((l)->a.counter), (o), (n))) |
182 | #define local_xchg(l, n) (xchg_local(&((l)->a.counter),(n))) | 120 | #define local_xchg(l, n) (xchg_local(&((l)->a.counter),(n))) |
@@ -235,12 +173,6 @@ static __inline__ long local_sub_if_positive(long i, local_t * l) | |||
235 | #define local_dec_and_test(l) (local_sub_return(1, (l)) == 0) | 173 | #define local_dec_and_test(l) (local_sub_return(1, (l)) == 0) |
236 | 174 | ||
237 | /* | 175 | /* |
238 | * local_dec_if_positive - decrement by 1 if old value positive | ||
239 | * @l: pointer of type local_t | ||
240 | */ | ||
241 | #define local_dec_if_positive(l) local_sub_if_positive(1, l) | ||
242 | |||
243 | /* | ||
244 | * local_add_negative - add and test if negative | 176 | * local_add_negative - add and test if negative |
245 | * @l: pointer of type local_t | 177 | * @l: pointer of type local_t |
246 | * @i: integer value to add | 178 | * @i: integer value to add |