Re: [PATCH v1] rcu: use hlist_nulls_next_rcu() in hlist_nulls_add_tail_rcu()

From: Paul E. McKenney
Date: Thu Oct 20 2022 - 14:44:27 EST


On Wed, Oct 19, 2022 at 08:36:50AM -0400, zhaomzhao@xxxxxxx wrote:
> From: Zhao Mengmeng <zhaomengmeng@xxxxxxxxxx>
>
> 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@xxxxxxxxxx>

Good eyes!

I have queued this for testing and further review.

Thanx, Paul

> ---
> include/linux/rculist_nulls.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/linux/rculist_nulls.h b/include/linux/rculist_nulls.h
> index d8afdb8784c1..ba4c00dd8005 100644
> --- a/include/linux/rculist_nulls.h
> +++ b/include/linux/rculist_nulls.h
> @@ -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);
> }
> --
> 2.37.1
>