aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/lib/spinlock.c
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2014-09-22 08:45:11 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2014-09-25 04:52:10 -0400
commit2684e73a861fe7b2ab763f442207025a1d9bb6a6 (patch)
tree36a5933a0a696425772f1a644f3223c88aca060f /arch/s390/lib/spinlock.c
parent6a5c1482e2b700e89f174ddb42434b37f15abccd (diff)
s390/rwlock: remove interrupt-enabling rwlock variant.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/lib/spinlock.c')
-rw-r--r--arch/s390/lib/spinlock.c50
1 files changed, 0 insertions, 50 deletions
diff --git a/arch/s390/lib/spinlock.c b/arch/s390/lib/spinlock.c
index 5f63ac5783cb..c717f4a4c63e 100644
--- a/arch/s390/lib/spinlock.c
+++ b/arch/s390/lib/spinlock.c
@@ -131,31 +131,6 @@ void _raw_read_lock_wait(arch_rwlock_t *rw)
131} 131}
132EXPORT_SYMBOL(_raw_read_lock_wait); 132EXPORT_SYMBOL(_raw_read_lock_wait);
133 133
134void _raw_read_lock_wait_flags(arch_rwlock_t *rw, unsigned long flags)
135{
136 unsigned int owner, old;
137 int count = spin_retry;
138
139 local_irq_restore(flags);
140 owner = 0;
141 while (1) {
142 if (count-- <= 0) {
143 if (owner && !smp_vcpu_scheduled(~owner))
144 smp_yield_cpu(~owner);
145 count = spin_retry;
146 }
147 old = ACCESS_ONCE(rw->lock);
148 owner = ACCESS_ONCE(rw->owner);
149 if ((int) old < 0)
150 continue;
151 local_irq_disable();
152 if (_raw_compare_and_swap(&rw->lock, old, old + 1))
153 return;
154 local_irq_restore(flags);
155 }
156}
157EXPORT_SYMBOL(_raw_read_lock_wait_flags);
158
159int _raw_read_trylock_retry(arch_rwlock_t *rw) 134int _raw_read_trylock_retry(arch_rwlock_t *rw)
160{ 135{
161 unsigned int old; 136 unsigned int old;
@@ -194,31 +169,6 @@ void _raw_write_lock_wait(arch_rwlock_t *rw)
194} 169}
195EXPORT_SYMBOL(_raw_write_lock_wait); 170EXPORT_SYMBOL(_raw_write_lock_wait);
196 171
197void _raw_write_lock_wait_flags(arch_rwlock_t *rw, unsigned long flags)
198{
199 unsigned int owner, old;
200 int count = spin_retry;
201
202 local_irq_restore(flags);
203 owner = 0;
204 while (1) {
205 if (count-- <= 0) {
206 if (owner && !smp_vcpu_scheduled(~owner))
207 smp_yield_cpu(~owner);
208 count = spin_retry;
209 }
210 old = ACCESS_ONCE(rw->lock);
211 owner = ACCESS_ONCE(rw->owner);
212 if (old)
213 continue;
214 local_irq_disable();
215 if (_raw_compare_and_swap(&rw->lock, 0, 0x80000000))
216 return;
217 local_irq_restore(flags);
218 }
219}
220EXPORT_SYMBOL(_raw_write_lock_wait_flags);
221
222int _raw_write_trylock_retry(arch_rwlock_t *rw) 172int _raw_write_trylock_retry(arch_rwlock_t *rw)
223{ 173{
224 unsigned int old; 174 unsigned int old;