···2525extern void atomic64_sub(int, atomic64_t *);26262727extern int atomic_add_ret(int, atomic_t *);2828-extern int atomic64_add_ret(int, atomic64_t *);2828+extern long atomic64_add_ret(int, atomic64_t *);2929extern int atomic_sub_ret(int, atomic_t *);3030-extern int atomic64_sub_ret(int, atomic64_t *);3030+extern long atomic64_sub_ret(int, atomic64_t *);31313232#define atomic_dec_return(v) atomic_sub_ret(1, v)3333#define atomic64_dec_return(v) atomic64_sub_ret(1, v)···9191 ((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n)))9292#define atomic64_xchg(v, new) (xchg(&((v)->counter), new))93939494-static inline int atomic64_add_unless(atomic64_t *v, long a, long u)9494+static inline long atomic64_add_unless(atomic64_t *v, long a, long u)9595{9696 long c, old;9797 c = atomic64_read(v);