diff options
Diffstat (limited to 'include/linux/hashtable.h')
| -rw-r--r-- | include/linux/hashtable.h | 40 | 
1 files changed, 19 insertions, 21 deletions
diff --git a/include/linux/hashtable.h b/include/linux/hashtable.h index 227c62424f3..a9df51f5d54 100644 --- a/include/linux/hashtable.h +++ b/include/linux/hashtable.h @@ -115,51 +115,50 @@ static inline void hash_del_rcu(struct hlist_node *node)   * hash_for_each - iterate over a hashtable   * @name: hashtable to iterate   * @bkt: integer to use as bucket loop cursor - * @node: the &struct list_head to use as a loop cursor for each entry   * @obj: the type * to use as a loop cursor for each entry   * @member: the name of the hlist_node within the struct   */ -#define hash_for_each(name, bkt, node, obj, member)				\ -	for ((bkt) = 0, node = NULL; node == NULL && (bkt) < HASH_SIZE(name); (bkt)++)\ -		hlist_for_each_entry(obj, node, &name[bkt], member) +#define hash_for_each(name, bkt, obj, member)				\ +	for ((bkt) = 0, obj = NULL; obj == NULL && (bkt) < HASH_SIZE(name);\ +			(bkt)++)\ +		hlist_for_each_entry(obj, &name[bkt], member)  /**   * hash_for_each_rcu - iterate over a rcu enabled hashtable   * @name: hashtable to iterate   * @bkt: integer to use as bucket loop cursor - * @node: the &struct list_head to use as a loop cursor for each entry   * @obj: the type * to use as a loop cursor for each entry   * @member: the name of the hlist_node within the struct   */ -#define hash_for_each_rcu(name, bkt, node, obj, member)				\ -	for ((bkt) = 0, node = NULL; node == NULL && (bkt) < HASH_SIZE(name); (bkt)++)\ -		hlist_for_each_entry_rcu(obj, node, &name[bkt], member) +#define hash_for_each_rcu(name, bkt, obj, member)			\ +	for ((bkt) = 0, obj = NULL; obj == NULL && (bkt) < HASH_SIZE(name);\ +			(bkt)++)\ +		hlist_for_each_entry_rcu(obj, &name[bkt], member)  /**   * hash_for_each_safe - iterate over a hashtable safe against removal of   * hash entry   * @name: hashtable to iterate   * @bkt: integer to use as bucket loop cursor - * @node: the &struct list_head to use as a loop cursor for each entry   * @tmp: a &struct used for temporary storage   * @obj: the type * to use as a loop cursor for each entry   * @member: the name of the hlist_node within the struct   */ -#define hash_for_each_safe(name, bkt, node, tmp, obj, member)			\ -	for ((bkt) = 0, node = NULL; node == NULL && (bkt) < HASH_SIZE(name); (bkt)++)\ -		hlist_for_each_entry_safe(obj, node, tmp, &name[bkt], member) +#define hash_for_each_safe(name, bkt, tmp, obj, member)			\ +	for ((bkt) = 0, obj = NULL; obj == NULL && (bkt) < HASH_SIZE(name);\ +			(bkt)++)\ +		hlist_for_each_entry_safe(obj, tmp, &name[bkt], member)  /**   * hash_for_each_possible - iterate over all possible objects hashing to the   * same bucket   * @name: hashtable to iterate   * @obj: the type * to use as a loop cursor for each entry - * @node: the &struct list_head 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   */ -#define hash_for_each_possible(name, obj, node, member, key)			\ -	hlist_for_each_entry(obj, node,	&name[hash_min(key, HASH_BITS(name))], member) +#define hash_for_each_possible(name, obj, member, key)			\ +	hlist_for_each_entry(obj, &name[hash_min(key, HASH_BITS(name))], member)  /**   * hash_for_each_possible_rcu - iterate over all possible objects hashing to the @@ -167,25 +166,24 @@ static inline void hash_del_rcu(struct hlist_node *node)   * in a rcu enabled hashtable   * @name: hashtable to iterate   * @obj: the type * to use as a loop cursor for each entry - * @node: the &struct list_head 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   */ -#define hash_for_each_possible_rcu(name, obj, node, member, key)		\ -	hlist_for_each_entry_rcu(obj, node, &name[hash_min(key, HASH_BITS(name))], member) +#define hash_for_each_possible_rcu(name, obj, member, key)		\ +	hlist_for_each_entry_rcu(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   * @name: hashtable to iterate   * @obj: the type * to use as a loop cursor for each entry - * @node: the &struct list_head to use as a loop cursor for each entry   * @tmp: a &struct used for temporary storage   * @member: the name of the hlist_node within the struct   * @key: the key of the objects to iterate over   */ -#define hash_for_each_possible_safe(name, obj, node, tmp, member, key)		\ -	hlist_for_each_entry_safe(obj, node, tmp,				\ +#define hash_for_each_possible_safe(name, obj, tmp, member, key)	\ +	hlist_for_each_entry_safe(obj, tmp,\  		&name[hash_min(key, HASH_BITS(name))], member)  |