Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cf4ef014 authored by Paul E. McKenney's avatar Paul E. McKenney Committed by David S. Miller
Browse files

[LIST]: Add docbook header comments for hlist_add_{before,after}_rcu()

parent 57bf1451
Loading
Loading
Loading
Loading
+30 −0
Original line number Original line Diff line number Diff line
@@ -634,6 +634,21 @@ static inline void hlist_add_after(struct hlist_node *n,
		next->next->pprev  = &next->next;
		next->next->pprev  = &next->next;
}
}


/**
 * hlist_add_before_rcu - adds the specified element to the specified hlist
 * before the specified node while permitting racing traversals.
 * @n: the new element to add to the hash list.
 * @next: the existing element to add the new element before.
 *
 * The caller must take whatever precautions are necessary
 * (such as holding appropriate locks) to avoid racing
 * with another list-mutation primitive, such as hlist_add_head_rcu()
 * or hlist_del_rcu(), running on this same list.
 * However, it is perfectly legal to run concurrently with
 * the _rcu list-traversal primitives, such as
 * hlist_for_each_rcu(), used to prevent memory-consistency
 * problems on Alpha CPUs.
 */
static inline void hlist_add_before_rcu(struct hlist_node *n,
static inline void hlist_add_before_rcu(struct hlist_node *n,
					struct hlist_node *next)
					struct hlist_node *next)
{
{
@@ -644,6 +659,21 @@ static inline void hlist_add_before_rcu(struct hlist_node *n,
	*(n->pprev) = n;
	*(n->pprev) = n;
}
}


/**
 * hlist_add_after_rcu - adds the specified element to the specified hlist
 * after the specified node while permitting racing traversals.
 * @prev: the existing element to add the new element after.
 * @n: the new element to add to the hash list.
 *
 * The caller must take whatever precautions are necessary
 * (such as holding appropriate locks) to avoid racing
 * with another list-mutation primitive, such as hlist_add_head_rcu()
 * or hlist_del_rcu(), running on this same list.
 * However, it is perfectly legal to run concurrently with
 * the _rcu list-traversal primitives, such as
 * hlist_for_each_rcu(), used to prevent memory-consistency
 * problems on Alpha CPUs.
 */
static inline void hlist_add_after_rcu(struct hlist_node *prev,
static inline void hlist_add_after_rcu(struct hlist_node *prev,
				       struct hlist_node *n)
				       struct hlist_node *n)
{
{