hashtable: add hash_for_each_possible_rcu_notrace()
This adds hash_for_each_possible_rcu_notrace() which is basically a notrace clone of hash_for_each_possible_rcu() which cannot be used in real mode due to its tracing/debugging capability. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
parent
8b5ede69d2
commit
81fcfb813f
|
@ -173,6 +173,21 @@ static inline void hash_del_rcu(struct hlist_node *node)
|
||||||
hlist_for_each_entry_rcu(obj, &name[hash_min(key, HASH_BITS(name))],\
|
hlist_for_each_entry_rcu(obj, &name[hash_min(key, HASH_BITS(name))],\
|
||||||
member)
|
member)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* hash_for_each_possible_rcu_notrace - iterate over all possible objects hashing
|
||||||
|
* to the same bucket in an rcu enabled hashtable in a rcu enabled hashtable
|
||||||
|
* @name: hashtable to iterate
|
||||||
|
* @obj: the type * to use as a loop cursor for each entry
|
||||||
|
* @member: the name of the hlist_node within the struct
|
||||||
|
* @key: the key of the objects to iterate over
|
||||||
|
*
|
||||||
|
* This is the same as hash_for_each_possible_rcu() except that it does
|
||||||
|
* not do any RCU debugging or tracing.
|
||||||
|
*/
|
||||||
|
#define hash_for_each_possible_rcu_notrace(name, obj, member, key) \
|
||||||
|
hlist_for_each_entry_rcu_notrace(obj, \
|
||||||
|
&name[hash_min(key, HASH_BITS(name))], member)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* hash_for_each_possible_safe - iterate over all possible objects hashing to the
|
* hash_for_each_possible_safe - iterate over all possible objects hashing to the
|
||||||
* same bucket safe against removals
|
* same bucket safe against removals
|
||||||
|
|
Loading…
Reference in New Issue