X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=kernel%2Fspinlock.c;h=476c3741511b31af1717f90e052880e0e6c9b585;hb=ba2397efe10ba728c7ff22b179e218c292227c13;hp=d48143eafbfde6388717e67c1c3b74011ea8a747;hpb=0cd43f83d381c4246a08cd775834833d6fd64805;p=~andy%2Flinux diff --git a/kernel/spinlock.c b/kernel/spinlock.c index d48143eafbf..476c3741511 100644 --- a/kernel/spinlock.c +++ b/kernel/spinlock.c @@ -215,7 +215,7 @@ void __lockfunc _##op##_lock(locktype##_t *lock) \ if (!(lock)->break_lock) \ (lock)->break_lock = 1; \ while (!op##_can_lock(lock) && (lock)->break_lock) \ - cpu_relax(); \ + _raw_##op##_relax(&lock->raw_lock); \ } \ (lock)->break_lock = 0; \ } \ @@ -237,7 +237,7 @@ unsigned long __lockfunc _##op##_lock_irqsave(locktype##_t *lock) \ if (!(lock)->break_lock) \ (lock)->break_lock = 1; \ while (!op##_can_lock(lock) && (lock)->break_lock) \ - cpu_relax(); \ + _raw_##op##_relax(&lock->raw_lock); \ } \ (lock)->break_lock = 0; \ return flags; \