Re: [RESEND PATCH] llist: Make llist_del_first return only the first node

From: Huang, Ying
Date: Sun Feb 18 2024 - 02:45:33 EST


liqiang <liqiang64@xxxxxxxxxx> writes:

> Set the next of the returned node of llist_del_first
> to NULL, which can prevent subsequent nodes in llist
> from being exposed, and is more consistent with the
> logic of this interface.
>
> Signed-off-by: liqiang <liqiang64@xxxxxxxxxx>
> ---
> lib/llist.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/lib/llist.c b/lib/llist.c
> index f21d0cf..c33fff5 100644
> --- a/lib/llist.c
> +++ b/lib/llist.c
> @@ -61,6 +61,7 @@ struct llist_node *llist_del_first(struct llist_head *head)
> next = READ_ONCE(entry->next);
> } while (!try_cmpxchg(&head->first, &entry, next));
>
> + entry->next = NULL;
> return entry;
> }
> EXPORT_SYMBOL_GPL(llist_del_first);

This isn't needed for functionality correctness. Many users of llist
ask for performance. So, it may be better to let the users to decide
whether to set entry->next to NULL.

--
Best Regards,
Huang, Ying