rcu: Use hlist_nulls_next_rcu() in hlist_nulls_add_tail_rcu()
authorZhao Mengmeng <zhaomengmeng@kylinos.cn>
Wed, 19 Oct 2022 12:36:50 +0000 (08:36 -0400)
committerPaul E. McKenney <paulmck@kernel.org>
Wed, 4 Jan 2023 01:28:33 +0000 (17:28 -0800)
In commit 8dbd76e79a16 ("tcp/dccp: fix possible race
__inet_lookup_established()"), function hlist_nulls_add_tail_rcu() was
added back, but the local variable *last* is of type hlist_nulls_node,
so use hlist_nulls_next_rcu() instead of hlist_next_rcu().

Signed-off-by: Zhao Mengmeng <zhaomengmeng@kylinos.cn>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
include/linux/rculist_nulls.h

index d8afdb8784c1c9529e40c38a7617dd12b5848118..ba4c00dd8005a9fb0bdfa761972f14caa57fc4db 100644 (file)
@@ -139,7 +139,7 @@ static inline void hlist_nulls_add_tail_rcu(struct hlist_nulls_node *n,
        if (last) {
                n->next = last->next;
                n->pprev = &last->next;
-               rcu_assign_pointer(hlist_next_rcu(last), n);
+               rcu_assign_pointer(hlist_nulls_next_rcu(last), n);
        } else {
                hlist_nulls_add_head_rcu(n, h);
        }