The atomic_inc_and_test has a typo, diff below: atomic.h ~/netapp/new/linux/include/asm-mips/atomic.h --- atomic.hFri Sep 27 14:48:34 2002 +++ /users/bbozarth/netapp/new/linux/include/asm-mips/atomic.hThu Oct 17 18:12:\46 2002 @@ -228,7 +228,7 @@ * other cases. Note that the guaranteed * useful range of an atomic_t is only 24 bits. */ -#define atomic_inc_and_test(v) (atomic_inc_return(1, (v)) == 0) +#define atomic_inc_and_test(v) (atomic_add_return(1, (v)) == 0) /* * atomic_dec_and_test - decrement by 1 and test