mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 14:42:08 +02:00
rcu: use WRITE_ONCE() for ->next and ->pprev of hlist_nulls
In rculist_nulls.h we can still see ordinary assignments to ->pprev and ->next of hlist_nulls. As noted in the two patches below: commitefd04f8a8b("rcu: Use WRITE_ONCE() for assignments to ->next for rculist_nulls") commit860c8802ac("rcu: Use WRITE_ONCE() for assignments to ->pprev for hlist_nulls") We should use WRITE_ONCE(). Signed-off-by: Xuanqiang Luo <luoxuanqiang@kylinos.cn> Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
This commit is contained in:
parent
e52b43883d
commit
34e82569d5
|
|
@ -138,7 +138,7 @@ static inline void hlist_nulls_add_tail_rcu(struct hlist_nulls_node *n,
|
|||
|
||||
if (last) {
|
||||
WRITE_ONCE(n->next, last->next);
|
||||
n->pprev = &last->next;
|
||||
WRITE_ONCE(n->pprev, &last->next);
|
||||
rcu_assign_pointer(hlist_nulls_next_rcu(last), n);
|
||||
} else {
|
||||
hlist_nulls_add_head_rcu(n, h);
|
||||
|
|
@ -148,8 +148,8 @@ static inline void hlist_nulls_add_tail_rcu(struct hlist_nulls_node *n,
|
|||
/* after that hlist_nulls_del will work */
|
||||
static inline void hlist_nulls_add_fake(struct hlist_nulls_node *n)
|
||||
{
|
||||
n->pprev = &n->next;
|
||||
n->next = (struct hlist_nulls_node *)NULLS_MARKER(NULL);
|
||||
WRITE_ONCE(n->pprev, &n->next);
|
||||
WRITE_ONCE(n->next, (struct hlist_nulls_node *)NULLS_MARKER(NULL));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user