Commit 8a4f2189 authored by Linus Torvalds's avatar Linus Torvalds

Revert "Don't busy-lock-loop in preemptable spinlocks" patch

The locking tests were wrong, and the fixes are up in the air. In the
meantime, the get-it-working patch is to just not do this.

Cset exclude: mingo@elte.hu[torvalds]|ChangeSet|20050115174045|30241
parent 9472e348
......@@ -173,7 +173,7 @@ EXPORT_SYMBOL(_write_lock);
* (We do this in a function because inlining it would be excessive.)
*/
#define BUILD_LOCK_OPS(op, locktype, is_locked_fn) \
#define BUILD_LOCK_OPS(op, locktype) \
void __lockfunc _##op##_lock(locktype *lock) \
{ \
preempt_disable(); \
......@@ -183,8 +183,7 @@ void __lockfunc _##op##_lock(locktype *lock) \
preempt_enable(); \
if (!(lock)->break_lock) \
(lock)->break_lock = 1; \
while (is_locked_fn(lock) && (lock)->break_lock) \
cpu_relax(); \
cpu_relax(); \
preempt_disable(); \
} \
} \
......@@ -205,8 +204,7 @@ unsigned long __lockfunc _##op##_lock_irqsave(locktype *lock) \
preempt_enable(); \
if (!(lock)->break_lock) \
(lock)->break_lock = 1; \
while (is_locked_fn(lock) && (lock)->break_lock) \
cpu_relax(); \
cpu_relax(); \
preempt_disable(); \
} \
return flags; \
......@@ -246,9 +244,9 @@ EXPORT_SYMBOL(_##op##_lock_bh)
* _[spin|read|write]_lock_irqsave()
* _[spin|read|write]_lock_bh()
*/
BUILD_LOCK_OPS(spin, spinlock_t, spin_is_locked);
BUILD_LOCK_OPS(read, rwlock_t, rwlock_is_locked);
BUILD_LOCK_OPS(write, rwlock_t, spin_is_locked);
BUILD_LOCK_OPS(spin, spinlock_t);
BUILD_LOCK_OPS(read, rwlock_t);
BUILD_LOCK_OPS(write, rwlock_t);
#endif /* CONFIG_PREEMPT */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment