diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-06-09 09:34:53 +0400 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-06-09 09:34:53 +0400 |
| commit | 38a4671cad3f0d277cf48445b49e42a475ebfb6a (patch) | |
| tree | 7348f3dd5f4e1bec39758dcff748a9dcbbf3430c /include/linux/rculist.h | |
| parent | d652f7022b359afd5d34fc9fffd71df118521ead (diff) | |
| parent | 317ddd256b9c24b0d78fa8018f80f1e495481a10 (diff) | |
| download | linux-38a4671cad3f0d277cf48445b49e42a475ebfb6a.tar.xz | |
Merge 3.10-rc5 into char-misc-next
Diffstat (limited to 'include/linux/rculist.h')
| -rw-r--r-- | include/linux/rculist.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/linux/rculist.h b/include/linux/rculist.h index 8089e35d47ac..f4b1001a4676 100644 --- a/include/linux/rculist.h +++ b/include/linux/rculist.h @@ -461,6 +461,26 @@ static inline void hlist_add_after_rcu(struct hlist_node *prev, &(pos)->member)), typeof(*(pos)), member)) /** + * hlist_for_each_entry_rcu_notrace - iterate over rcu list of given type (for tracing) + * @pos: the type * to use as a loop cursor. + * @head: the head for your list. + * @member: the name of the hlist_node within the struct. + * + * This list-traversal primitive may safely run concurrently with + * the _rcu list-mutation primitives such as hlist_add_head_rcu() + * as long as the traversal is guarded by rcu_read_lock(). + * + * This is the same as hlist_for_each_entry_rcu() except that it does + * not do any RCU debugging or tracing. + */ +#define hlist_for_each_entry_rcu_notrace(pos, head, member) \ + for (pos = hlist_entry_safe (rcu_dereference_raw_notrace(hlist_first_rcu(head)),\ + typeof(*(pos)), member); \ + pos; \ + pos = hlist_entry_safe(rcu_dereference_raw_notrace(hlist_next_rcu(\ + &(pos)->member)), typeof(*(pos)), member)) + +/** * hlist_for_each_entry_rcu_bh - iterate over rcu list of given type * @pos: the type * to use as a loop cursor. * @head: the head for your list. |
