void *rcu_assign_pointer_sym(void **p, void *v)
{
wmb();
- return STORE_SHARED(p, v);
+ return STORE_SHARED(*p, v);
}
void *rcu_cmpxchg_pointer_sym(void **p, void *old, void *_new)
extern void *rcu_assign_pointer_sym(void **p, void *v);
#define rcu_assign_pointer(p, v) \
- rcu_assign_pointer_sym((void **)(p), (v))
+ rcu_assign_pointer_sym((void **)(&(p)), (v))
extern void *rcu_cmpxchg_pointer_sym(void **p, void *old, void *_new);
#define rcu_cmpxchg_pointer(p, old, _new) \
void *rcu_assign_pointer_sym(void **p, void *v)
{
wmb();
- return STORE_SHARED(p, v);
+ return STORE_SHARED(*p, v);
}
void *rcu_xchg_pointer_sym(void **p, void *v)
extern void *rcu_assign_pointer_sym(void **p, void *v);
#define rcu_assign_pointer(p, v) \
- rcu_assign_pointer_sym((void **)(p), (v))
+ rcu_assign_pointer_sym((void **)(&(p)), (v))
extern void *rcu_cmpxchg_pointer_sym(void **p, void *old, void *_new);
#define rcu_cmpxchg_pointer(p, old, _new) \