lib/llist.c | 1 + 1 file changed, 1 insertion(+)
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@huawei.com>
---
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);
--
2.23.0.windows.1
liqiang <liqiang64@huawei.com> 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@huawei.com> > --- > 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
在 2024/2/18 15:43, Huang, Ying 写道: > liqiang <liqiang64@huawei.com> 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@huawei.com> >> --- >> 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. > Ok, get it, thanks for your reply. -- Best regards, Li Qiang
© 2016 - 2026 Red Hat, Inc.