Browse Source

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

Signed-off-by: David S. Miller <davem@davemloft.net>
Paul E. McKenney 19 years ago
parent
commit
cf4ef01440
1 changed files with 30 additions and 0 deletions
  1. 30 0
      include/linux/list.h

+ 30 - 0
include/linux/list.h

@@ -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)
 {
 {