diff -Naurp linux-2.6.15.1.orig/include/asm-mips/system.h linux-2.6.15.1/include/asm-mips/system.h --- linux-2.6.15.1.orig/include/asm-mips/system.h 2006-01-02 22:21:10.000000000 -0500 +++ linux-2.6.15.1/include/asm-mips/system.h 2006-02-01 00:14:37.000000000 -0500 @@ -273,7 +273,7 @@ extern __u64 __xchg_u64_unsupported_on_3 if something tries to do an invalid xchg(). */ extern void __xchg_called_with_bad_pointer(void); -static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size) +static __always_inline unsigned long __xchg(unsigned long x, volatile void * ptr, int size) { switch (size) { case 4: