From: Zwane Mwaikambo <zwane@arm.linux.org.uk>

Some gcc-3.2.2 variant miscompiles constant_test_bit().  Tweak it so the
compiler gets it right.  It cleans it up too!



 include/asm-i386/bitops.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff -puN include/asm-i386/bitops.h~constant_test_bit-doesnt-like-zwanes-gcc include/asm-i386/bitops.h
--- 25/include/asm-i386/bitops.h~constant_test_bit-doesnt-like-zwanes-gcc	2003-10-15 21:24:03.000000000 -0700
+++ 25-akpm/include/asm-i386/bitops.h	2003-10-15 21:25:05.000000000 -0700
@@ -239,9 +239,9 @@ static __inline__ int test_and_change_bi
 static int test_bit(int nr, const volatile void * addr);
 #endif
 
-static __inline__ int constant_test_bit(int nr, const volatile unsigned long * addr)
+static inline int constant_test_bit(int nr, const volatile unsigned long *addr)
 {
-	return ((1UL << (nr & 31)) & (((const volatile unsigned int *) addr)[nr >> 5])) != 0;
+	return ((1UL << (nr & 31)) & (addr[nr >> 5])) != 0;
 }
 
 static __inline__ int variable_test_bit(int nr, const volatile unsigned long * addr)

_