On Tue, Dec 10, 2019 at 12:03 AM Paul E. McKenney wrote: > On Mon, Dec 09, 2019 at 01:20:43PM +0530, madhuparnabhowmik04@gmail.com > wrote: > > From: Madhuparna Bhowmik > > > > This patch adds the macro list_tail_rcu() and document it. > > > > Signed-off-by: Madhuparna Bhowmik > > Queued with slight edits, thank you very much! > > Thank you! Regards, Madhuparna > Thanx, Paul > > > --- > > include/linux/rculist.h | 10 ++++++++++ > > 1 file changed, 10 insertions(+) > > > > diff --git a/include/linux/rculist.h b/include/linux/rculist.h > > index 4b7ae1bf50b3..9f21efa525ab 100644 > > --- a/include/linux/rculist.h > > +++ b/include/linux/rculist.h > > @@ -40,6 +40,16 @@ static inline void INIT_LIST_HEAD_RCU(struct > list_head *list) > > */ > > #define list_next_rcu(list) (*((struct list_head __rcu > **)(&(list)->next))) > > > > +/** > > + * list_tail_rcu - returns the prev pointer of the head of the list > > + * @head: the head of the list > > + * > > + * Note: This should only be used with the list header, > > + * but only if list_del() and similar primitives are not > > + * also used on the list header. > > + */ > > +#define list_tail_rcu(head) (*((struct list_head __rcu > **)(&(head)->prev))) > > + > > /* > > * Check during list traversal that we are within an RCU reader > > */ > > -- > > 2.17.1 > > > ᐧ