diff options
Diffstat (limited to 'kernel/spinlock.c')
-rw-r--r-- | kernel/spinlock.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/kernel/spinlock.c b/kernel/spinlock.c index 29ab20749dd3..7932653c4ebd 100644 --- a/kernel/spinlock.c +++ b/kernel/spinlock.c | |||
@@ -121,7 +121,8 @@ unsigned long __lockfunc _read_lock_irqsave(rwlock_t *lock) | |||
121 | local_irq_save(flags); | 121 | local_irq_save(flags); |
122 | preempt_disable(); | 122 | preempt_disable(); |
123 | rwlock_acquire_read(&lock->dep_map, 0, 0, _RET_IP_); | 123 | rwlock_acquire_read(&lock->dep_map, 0, 0, _RET_IP_); |
124 | LOCK_CONTENDED(lock, _raw_read_trylock, _raw_read_lock); | 124 | LOCK_CONTENDED_FLAGS(lock, _raw_read_trylock, _raw_read_lock, |
125 | _raw_read_lock_flags, &flags); | ||
125 | return flags; | 126 | return flags; |
126 | } | 127 | } |
127 | EXPORT_SYMBOL(_read_lock_irqsave); | 128 | EXPORT_SYMBOL(_read_lock_irqsave); |
@@ -151,7 +152,8 @@ unsigned long __lockfunc _write_lock_irqsave(rwlock_t *lock) | |||
151 | local_irq_save(flags); | 152 | local_irq_save(flags); |
152 | preempt_disable(); | 153 | preempt_disable(); |
153 | rwlock_acquire(&lock->dep_map, 0, 0, _RET_IP_); | 154 | rwlock_acquire(&lock->dep_map, 0, 0, _RET_IP_); |
154 | LOCK_CONTENDED(lock, _raw_write_trylock, _raw_write_lock); | 155 | LOCK_CONTENDED_FLAGS(lock, _raw_write_trylock, _raw_write_lock, |
156 | _raw_write_lock_flags, &flags); | ||
155 | return flags; | 157 | return flags; |
156 | } | 158 | } |
157 | EXPORT_SYMBOL(_write_lock_irqsave); | 159 | EXPORT_SYMBOL(_write_lock_irqsave); |
@@ -299,16 +301,8 @@ unsigned long __lockfunc _spin_lock_irqsave_nested(spinlock_t *lock, int subclas | |||
299 | local_irq_save(flags); | 301 | local_irq_save(flags); |
300 | preempt_disable(); | 302 | preempt_disable(); |
301 | spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_); | 303 | spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_); |
302 | /* | 304 | LOCK_CONTENDED_FLAGS(lock, _raw_spin_trylock, _raw_spin_lock, |
303 | * On lockdep we dont want the hand-coded irq-enable of | 305 | _raw_spin_lock_flags, &flags); |
304 | * _raw_spin_lock_flags() code, because lockdep assumes | ||
305 | * that interrupts are not re-enabled during lock-acquire: | ||
306 | */ | ||
307 | #ifdef CONFIG_LOCKDEP | ||
308 | LOCK_CONTENDED(lock, _raw_spin_trylock, _raw_spin_lock); | ||
309 | #else | ||
310 | _raw_spin_lock_flags(lock, &flags); | ||
311 | #endif | ||
312 | return flags; | 306 | return flags; |
313 | } | 307 | } |
314 | EXPORT_SYMBOL(_spin_lock_irqsave_nested); | 308 | EXPORT_SYMBOL(_spin_lock_irqsave_nested); |