diff --git a/include/linux/atomic.h b/include/linux/atomic.h index c594ff8b..f7b2619a 100644 --- a/include/linux/atomic.h +++ b/include/linux/atomic.h @@ -72,14 +72,14 @@ typedef struct { #define __ATOMIC_SUB_RETURN(v, p) __atomic_sub_fetch(p, v, __ATOMIC_RELAXED) #define __ATOMIC_SUB_RETURN_RELEASE(v, p) \ __atomic_sub_fetch(p, v, __ATOMIC_RELEASE) -#define __ATOMIC_AND(p) __atomic_and_fetch(p, v, __ATOMIC_RELAXED) -#define __ATOMIC_OR(p) __atomic_or_fetch(p, v, __ATOMIC_RELAXED) +#define __ATOMIC_AND(v, p) __atomic_and_fetch(&(p)->counter, v, __ATOMIC_RELAXED) +#define __ATOMIC_OR(v, p) __atomic_or_fetch(&(p)->counter, v, __ATOMIC_RELAXED) #define xchg(p, v) __atomic_exchange_n(p, v, __ATOMIC_SEQ_CST) #define xchg_acquire(p, v) __atomic_exchange_n(p, v, __ATOMIC_ACQUIRE) #define try_cmpxchg(p, old, new) \ - __atomic_compare_exchange_n((p), __old, new, false, \ + __atomic_compare_exchange_n((p), old, new, false, \ __ATOMIC_SEQ_CST, \ __ATOMIC_SEQ_CST)