atomic_dec_and_test
#define atomic_dec_and_test(v) (atomic_sub_return(1, (v)) == 0)
#define atomic_dec_and_test(p) (atomic_dec_return(p) == 0)