From: Zwane Mwaikambo 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) _