From: Alexey Kardashevskiy Date: Wed, 28 Aug 2013 08:37:39 +0000 (+1000) Subject: hashtable: add hash_for_each_possible_rcu_notrace() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=81fcfb813fe99c30f77dd3ed9a4e541d14a9ed01;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git 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 Signed-off-by: Benjamin Herrenschmidt --- diff --git a/include/linux/hashtable.h b/include/linux/hashtable.h index a9df51f5d54c..519b6e2d769e 100644 --- a/include/linux/hashtable.h +++ b/include/linux/hashtable.h @@ -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))],\ 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 * same bucket safe against removals