Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] powerpc: Fix building of power3 config on ppc32

The spinlock_types.h merge renamed the structure for raw_spinlock_t to
match ppc64. In doing so some of the spinlock macros/functions needed to
be updated to match. Apparently, this seems to only be caught when
building power3.

Signed-off-by: Kumar Gala <kumar.gala@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

authored by

Kumar Gala and committed by
Paul Mackerras
3efc333e b671ad2b

+4 -4
+4 -4
include/asm-ppc/spinlock.h
··· 9 9 * (the type definitions are in asm/raw_spinlock_types.h) 10 10 */ 11 11 12 - #define __raw_spin_is_locked(x) ((x)->lock != 0) 12 + #define __raw_spin_is_locked(x) ((x)->slock != 0) 13 13 #define __raw_spin_unlock_wait(lock) \ 14 14 do { while (__raw_spin_is_locked(lock)) cpu_relax(); } while (0) 15 15 #define __raw_spin_lock_flags(lock, flags) __raw_spin_lock(lock) ··· 31 31 bne- 2b\n\ 32 32 isync" 33 33 : "=&r"(tmp) 34 - : "r"(&lock->lock), "r"(1) 34 + : "r"(&lock->slock), "r"(1) 35 35 : "cr0", "memory"); 36 36 } 37 37 38 38 static inline void __raw_spin_unlock(raw_spinlock_t *lock) 39 39 { 40 40 __asm__ __volatile__("eieio # __raw_spin_unlock": : :"memory"); 41 - lock->lock = 0; 41 + lock->slock = 0; 42 42 } 43 43 44 - #define __raw_spin_trylock(l) (!test_and_set_bit(0,&(l)->lock)) 44 + #define __raw_spin_trylock(l) (!test_and_set_bit(0,(volatile unsigned long *)(&(l)->slock))) 45 45 46 46 /* 47 47 * Read-write spinlocks, allowing multiple readers