CONFIG_SPINLINE broken on 2.6.9-rc2

Sonny Rao sonny at burdell.org
Fri Sep 24 06:02:58 EST 2004


Hi, I was trying to get a profile with inlined spinlocks on 2.6.9-rc2
and I noticed that my kernel build failed with several undefined
references to spin_unlock_wait. 

After some grepping around it looked like the prototype in
include/asm-ppc64/spinlock.h for spin_unlock_wait might be incorrect and
should be a preprocessor define (like the ones in all of the other
architectures including ppc), and the kernel does build and run with
this change. 

Is this correct?  

Sonny

Here's the one-liner:

Fix CONFIG_SPINLINE for ppc64 by adding macro for spin_unlock_wait 
in include/asm-ppc64/spinlock.h

--- linux-2.6.9-rc2/include/asm-ppc64/spinlock.h.original       2004-09-23 14:36:08.618964736 -0500
+++ linux-2.6.9-rc2/include/asm-ppc64/spinlock.h        2004-09-23 14:36:53.231971488 -0500
@@ -65,7 +65,7 @@ extern void __rw_yield(rwlock_t *lock);
 #define __rw_yield(x)  barrier()
 #define SHARED_PROCESSOR       0
 #endif
-extern void spin_unlock_wait(spinlock_t *lock);
+#define spin_unlock_wait(x)    do { barrier(); } while(spin_is_locked(x))
 
 /*
  * This returns the old value in the lock, so we succeeded



More information about the Linuxppc64-dev mailing list