diff options
Diffstat (limited to 'drivers')
32 files changed, 117 insertions, 176 deletions
diff --git a/drivers/atm/atmtcp.c b/drivers/atm/atmtcp.c index b22d71cac54..0e3f8f9dcd2 100644 --- a/drivers/atm/atmtcp.c +++ b/drivers/atm/atmtcp.c @@ -157,7 +157,6 @@ static int atmtcp_v_ioctl(struct atm_dev *dev,unsigned int cmd,void __user *arg)  {  	struct atm_cirange ci;  	struct atm_vcc *vcc; -	struct hlist_node *node;  	struct sock *s;  	int i; @@ -171,7 +170,7 @@ static int atmtcp_v_ioctl(struct atm_dev *dev,unsigned int cmd,void __user *arg)  	for(i = 0; i < VCC_HTABLE_SIZE; ++i) {  		struct hlist_head *head = &vcc_hash[i]; -		sk_for_each(s, node, head) { +		sk_for_each(s, head) {  			vcc = atm_sk(s);  			if (vcc->dev != dev)  				continue; @@ -264,12 +263,11 @@ static struct atm_vcc *find_vcc(struct atm_dev *dev, short vpi, int vci)  {          struct hlist_head *head;          struct atm_vcc *vcc; -        struct hlist_node *node;          struct sock *s;          head = &vcc_hash[vci & (VCC_HTABLE_SIZE -1)]; -        sk_for_each(s, node, head) { +	sk_for_each(s, head) {                  vcc = atm_sk(s);                  if (vcc->dev == dev &&                      vcc->vci == vci && vcc->vpi == vpi && diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c index c1eb6fa8ac3..b1955ba40d6 100644 --- a/drivers/atm/eni.c +++ b/drivers/atm/eni.c @@ -2093,7 +2093,6 @@ static unsigned char eni_phy_get(struct atm_dev *dev,unsigned long addr)  static int eni_proc_read(struct atm_dev *dev,loff_t *pos,char *page)  { -	struct hlist_node *node;  	struct sock *s;  	static const char *signal[] = { "LOST","unknown","okay" };  	struct eni_dev *eni_dev = ENI_DEV(dev); @@ -2171,7 +2170,7 @@ static int eni_proc_read(struct atm_dev *dev,loff_t *pos,char *page)  	for(i = 0; i < VCC_HTABLE_SIZE; ++i) {  		struct hlist_head *head = &vcc_hash[i]; -		sk_for_each(s, node, head) { +		sk_for_each(s, head) {  			struct eni_vcc *eni_vcc;  			int length; diff --git a/drivers/atm/he.c b/drivers/atm/he.c index 72b6960fa95..d6891267f5b 100644 --- a/drivers/atm/he.c +++ b/drivers/atm/he.c @@ -329,7 +329,6 @@ __find_vcc(struct he_dev *he_dev, unsigned cid)  {  	struct hlist_head *head;  	struct atm_vcc *vcc; -	struct hlist_node *node;  	struct sock *s;  	short vpi;  	int vci; @@ -338,7 +337,7 @@ __find_vcc(struct he_dev *he_dev, unsigned cid)  	vci = cid & ((1 << he_dev->vcibits) - 1);  	head = &vcc_hash[vci & (VCC_HTABLE_SIZE -1)]; -	sk_for_each(s, node, head) { +	sk_for_each(s, head) {  		vcc = atm_sk(s);  		if (vcc->dev == he_dev->atm_dev &&  		    vcc->vci == vci && vcc->vpi == vpi && diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c index 0474a89170b..32784d18d1f 100644 --- a/drivers/atm/solos-pci.c +++ b/drivers/atm/solos-pci.c @@ -896,12 +896,11 @@ static struct atm_vcc *find_vcc(struct atm_dev *dev, short vpi, int vci)  {  	struct hlist_head *head;  	struct atm_vcc *vcc = NULL; -	struct hlist_node *node;  	struct sock *s;  	read_lock(&vcc_sklist_lock);  	head = &vcc_hash[vci & (VCC_HTABLE_SIZE -1)]; -	sk_for_each(s, node, head) { +	sk_for_each(s, head) {  		vcc = atm_sk(s);  		if (vcc->dev == dev && vcc->vci == vci &&  		    vcc->vpi == vpi && vcc->qos.rxtp.traffic_class != ATM_NONE && diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index fabbfe1a925..ed87b240580 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -52,31 +52,29 @@ static void clk_summary_show_subtree(struct seq_file *s, struct clk *c,  				     int level)  {  	struct clk *child; -	struct hlist_node *tmp;  	if (!c)  		return;  	clk_summary_show_one(s, c, level); -	hlist_for_each_entry(child, tmp, &c->children, child_node) +	hlist_for_each_entry(child, &c->children, child_node)  		clk_summary_show_subtree(s, child, level + 1);  }  static int clk_summary_show(struct seq_file *s, void *data)  {  	struct clk *c; -	struct hlist_node *tmp;  	seq_printf(s, "   clock                        enable_cnt  prepare_cnt  rate\n");  	seq_printf(s, "---------------------------------------------------------------------\n");  	mutex_lock(&prepare_lock); -	hlist_for_each_entry(c, tmp, &clk_root_list, child_node) +	hlist_for_each_entry(c, &clk_root_list, child_node)  		clk_summary_show_subtree(s, c, 0); -	hlist_for_each_entry(c, tmp, &clk_orphan_list, child_node) +	hlist_for_each_entry(c, &clk_orphan_list, child_node)  		clk_summary_show_subtree(s, c, 0);  	mutex_unlock(&prepare_lock); @@ -111,14 +109,13 @@ static void clk_dump_one(struct seq_file *s, struct clk *c, int level)  static void clk_dump_subtree(struct seq_file *s, struct clk *c, int level)  {  	struct clk *child; -	struct hlist_node *tmp;  	if (!c)  		return;  	clk_dump_one(s, c, level); -	hlist_for_each_entry(child, tmp, &c->children, child_node) { +	hlist_for_each_entry(child, &c->children, child_node) {  		seq_printf(s, ",");  		clk_dump_subtree(s, child, level + 1);  	} @@ -129,21 +126,20 @@ static void clk_dump_subtree(struct seq_file *s, struct clk *c, int level)  static int clk_dump(struct seq_file *s, void *data)  {  	struct clk *c; -	struct hlist_node *tmp;  	bool first_node = true;  	seq_printf(s, "{");  	mutex_lock(&prepare_lock); -	hlist_for_each_entry(c, tmp, &clk_root_list, child_node) { +	hlist_for_each_entry(c, &clk_root_list, child_node) {  		if (!first_node)  			seq_printf(s, ",");  		first_node = false;  		clk_dump_subtree(s, c, 0);  	} -	hlist_for_each_entry(c, tmp, &clk_orphan_list, child_node) { +	hlist_for_each_entry(c, &clk_orphan_list, child_node) {  		seq_printf(s, ",");  		clk_dump_subtree(s, c, 0);  	} @@ -222,7 +218,6 @@ out:  static int clk_debug_create_subtree(struct clk *clk, struct dentry *pdentry)  {  	struct clk *child; -	struct hlist_node *tmp;  	int ret = -EINVAL;;  	if (!clk || !pdentry) @@ -233,7 +228,7 @@ static int clk_debug_create_subtree(struct clk *clk, struct dentry *pdentry)  	if (ret)  		goto out; -	hlist_for_each_entry(child, tmp, &clk->children, child_node) +	hlist_for_each_entry(child, &clk->children, child_node)  		clk_debug_create_subtree(child, clk->dentry);  	ret = 0; @@ -299,7 +294,6 @@ out:  static int __init clk_debug_init(void)  {  	struct clk *clk; -	struct hlist_node *tmp;  	struct dentry *d;  	rootdir = debugfs_create_dir("clk", NULL); @@ -324,10 +318,10 @@ static int __init clk_debug_init(void)  	mutex_lock(&prepare_lock); -	hlist_for_each_entry(clk, tmp, &clk_root_list, child_node) +	hlist_for_each_entry(clk, &clk_root_list, child_node)  		clk_debug_create_subtree(clk, rootdir); -	hlist_for_each_entry(clk, tmp, &clk_orphan_list, child_node) +	hlist_for_each_entry(clk, &clk_orphan_list, child_node)  		clk_debug_create_subtree(clk, orphandir);  	inited = 1; @@ -345,13 +339,12 @@ static inline int clk_debug_register(struct clk *clk) { return 0; }  static void clk_disable_unused_subtree(struct clk *clk)  {  	struct clk *child; -	struct hlist_node *tmp;  	unsigned long flags;  	if (!clk)  		goto out; -	hlist_for_each_entry(child, tmp, &clk->children, child_node) +	hlist_for_each_entry(child, &clk->children, child_node)  		clk_disable_unused_subtree(child);  	spin_lock_irqsave(&enable_lock, flags); @@ -384,14 +377,13 @@ out:  static int clk_disable_unused(void)  {  	struct clk *clk; -	struct hlist_node *tmp;  	mutex_lock(&prepare_lock); -	hlist_for_each_entry(clk, tmp, &clk_root_list, child_node) +	hlist_for_each_entry(clk, &clk_root_list, child_node)  		clk_disable_unused_subtree(clk); -	hlist_for_each_entry(clk, tmp, &clk_orphan_list, child_node) +	hlist_for_each_entry(clk, &clk_orphan_list, child_node)  		clk_disable_unused_subtree(clk);  	mutex_unlock(&prepare_lock); @@ -484,12 +476,11 @@ static struct clk *__clk_lookup_subtree(const char *name, struct clk *clk)  {  	struct clk *child;  	struct clk *ret; -	struct hlist_node *tmp;  	if (!strcmp(clk->name, name))  		return clk; -	hlist_for_each_entry(child, tmp, &clk->children, child_node) { +	hlist_for_each_entry(child, &clk->children, child_node) {  		ret = __clk_lookup_subtree(name, child);  		if (ret)  			return ret; @@ -502,20 +493,19 @@ struct clk *__clk_lookup(const char *name)  {  	struct clk *root_clk;  	struct clk *ret; -	struct hlist_node *tmp;  	if (!name)  		return NULL;  	/* search the 'proper' clk tree first */ -	hlist_for_each_entry(root_clk, tmp, &clk_root_list, child_node) { +	hlist_for_each_entry(root_clk, &clk_root_list, child_node) {  		ret = __clk_lookup_subtree(name, root_clk);  		if (ret)  			return ret;  	}  	/* if not found, then search the orphan tree */ -	hlist_for_each_entry(root_clk, tmp, &clk_orphan_list, child_node) { +	hlist_for_each_entry(root_clk, &clk_orphan_list, child_node) {  		ret = __clk_lookup_subtree(name, root_clk);  		if (ret)  			return ret; @@ -812,7 +802,6 @@ static void __clk_recalc_rates(struct clk *clk, unsigned long msg)  {  	unsigned long old_rate;  	unsigned long parent_rate = 0; -	struct hlist_node *tmp;  	struct clk *child;  	old_rate = clk->rate; @@ -832,7 +821,7 @@ static void __clk_recalc_rates(struct clk *clk, unsigned long msg)  	if (clk->notifier_count && msg)  		__clk_notify(clk, msg, old_rate, clk->rate); -	hlist_for_each_entry(child, tmp, &clk->children, child_node) +	hlist_for_each_entry(child, &clk->children, child_node)  		__clk_recalc_rates(child, msg);  } @@ -878,7 +867,6 @@ EXPORT_SYMBOL_GPL(clk_get_rate);   */  static int __clk_speculate_rates(struct clk *clk, unsigned long parent_rate)  { -	struct hlist_node *tmp;  	struct clk *child;  	unsigned long new_rate;  	int ret = NOTIFY_DONE; @@ -895,7 +883,7 @@ static int __clk_speculate_rates(struct clk *clk, unsigned long parent_rate)  	if (ret == NOTIFY_BAD)  		goto out; -	hlist_for_each_entry(child, tmp, &clk->children, child_node) { +	hlist_for_each_entry(child, &clk->children, child_node) {  		ret = __clk_speculate_rates(child, new_rate);  		if (ret == NOTIFY_BAD)  			break; @@ -908,11 +896,10 @@ out:  static void clk_calc_subtree(struct clk *clk, unsigned long new_rate)  {  	struct clk *child; -	struct hlist_node *tmp;  	clk->new_rate = new_rate; -	hlist_for_each_entry(child, tmp, &clk->children, child_node) { +	hlist_for_each_entry(child, &clk->children, child_node) {  		if (child->ops->recalc_rate)  			child->new_rate = child->ops->recalc_rate(child->hw, new_rate);  		else @@ -983,7 +970,6 @@ out:   */  static struct clk *clk_propagate_rate_change(struct clk *clk, unsigned long event)  { -	struct hlist_node *tmp;  	struct clk *child, *fail_clk = NULL;  	int ret = NOTIFY_DONE; @@ -996,7 +982,7 @@ static struct clk *clk_propagate_rate_change(struct clk *clk, unsigned long even  			fail_clk = clk;  	} -	hlist_for_each_entry(child, tmp, &clk->children, child_node) { +	hlist_for_each_entry(child, &clk->children, child_node) {  		clk = clk_propagate_rate_change(child, event);  		if (clk)  			fail_clk = clk; @@ -1014,7 +1000,6 @@ static void clk_change_rate(struct clk *clk)  	struct clk *child;  	unsigned long old_rate;  	unsigned long best_parent_rate = 0; -	struct hlist_node *tmp;  	old_rate = clk->rate; @@ -1032,7 +1017,7 @@ static void clk_change_rate(struct clk *clk)  	if (clk->notifier_count && old_rate != clk->rate)  		__clk_notify(clk, POST_RATE_CHANGE, old_rate, clk->rate); -	hlist_for_each_entry(child, tmp, &clk->children, child_node) +	hlist_for_each_entry(child, &clk->children, child_node)  		clk_change_rate(child);  } @@ -1348,7 +1333,7 @@ int __clk_init(struct device *dev, struct clk *clk)  {  	int i, ret = 0;  	struct clk *orphan; -	struct hlist_node *tmp, *tmp2; +	struct hlist_node *tmp2;  	if (!clk)  		return -EINVAL; @@ -1448,7 +1433,7 @@ int __clk_init(struct device *dev, struct clk *clk)  	 * walk the list of orphan clocks and reparent any that are children of  	 * this clock  	 */ -	hlist_for_each_entry_safe(orphan, tmp, tmp2, &clk_orphan_list, child_node) { +	hlist_for_each_entry_safe(orphan, tmp2, &clk_orphan_list, child_node) {  		if (orphan->ops->get_parent) {  			i = orphan->ops->get_parent(orphan->hw);  			if (!strcmp(clk->name, orphan->parent_names[i])) diff --git a/drivers/gpu/drm/drm_hashtab.c b/drivers/gpu/drm/drm_hashtab.c index 80254547a3f..7e4bae760e2 100644 --- a/drivers/gpu/drm/drm_hashtab.c +++ b/drivers/gpu/drm/drm_hashtab.c @@ -60,14 +60,13 @@ void drm_ht_verbose_list(struct drm_open_hash *ht, unsigned long key)  {  	struct drm_hash_item *entry;  	struct hlist_head *h_list; -	struct hlist_node *list;  	unsigned int hashed_key;  	int count = 0;  	hashed_key = hash_long(key, ht->order);  	DRM_DEBUG("Key is 0x%08lx, Hashed key is 0x%08x\n", key, hashed_key);  	h_list = &ht->table[hashed_key]; -	hlist_for_each_entry(entry, list, h_list, head) +	hlist_for_each_entry(entry, h_list, head)  		DRM_DEBUG("count %d, key: 0x%08lx\n", count++, entry->key);  } @@ -76,14 +75,13 @@ static struct hlist_node *drm_ht_find_key(struct drm_open_hash *ht,  {  	struct drm_hash_item *entry;  	struct hlist_head *h_list; -	struct hlist_node *list;  	unsigned int hashed_key;  	hashed_key = hash_long(key, ht->order);  	h_list = &ht->table[hashed_key]; -	hlist_for_each_entry(entry, list, h_list, head) { +	hlist_for_each_entry(entry, h_list, head) {  		if (entry->key == key) -			return list; +			return &entry->head;  		if (entry->key > key)  			break;  	} @@ -95,14 +93,13 @@ static struct hlist_node *drm_ht_find_key_rcu(struct drm_open_hash *ht,  {  	struct drm_hash_item *entry;  	struct hlist_head *h_list; -	struct hlist_node *list;  	unsigned int hashed_key;  	hashed_key = hash_long(key, ht->order);  	h_list = &ht->table[hashed_key]; -	hlist_for_each_entry_rcu(entry, list, h_list, head) { +	hlist_for_each_entry_rcu(entry, h_list, head) {  		if (entry->key == key) -			return list; +			return &entry->head;  		if (entry->key > key)  			break;  	} @@ -113,19 +110,19 @@ int drm_ht_insert_item(struct drm_open_hash *ht, struct drm_hash_item *item)  {  	struct drm_hash_item *entry;  	struct hlist_head *h_list; -	struct hlist_node *list, *parent; +	struct hlist_node *parent;  	unsigned int hashed_key;  	unsigned long key = item->key;  	hashed_key = hash_long(key, ht->order);  	h_list = &ht->table[hashed_key];  	parent = NULL; -	hlist_for_each_entry(entry, list, h_list, head) { +	hlist_for_each_entry(entry, h_list, head) {  		if (entry->key == key)  			return -EINVAL;  		if (entry->key > key)  			break; -		parent = list; +		parent = &entry->head;  	}  	if (parent) {  		hlist_add_after_rcu(parent, &item->head); diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index c32eeaa3f3b..71c2c711680 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -2204,10 +2204,9 @@ static int cma_check_port(struct rdma_bind_list *bind_list,  {  	struct rdma_id_private *cur_id;  	struct sockaddr *addr, *cur_addr; -	struct hlist_node *node;  	addr = (struct sockaddr *) &id_priv->id.route.addr.src_addr; -	hlist_for_each_entry(cur_id, node, &bind_list->owners, node) { +	hlist_for_each_entry(cur_id, &bind_list->owners, node) {  		if (id_priv == cur_id)  			continue; diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c index 176c8f90f2b..9f5ad7cc33c 100644 --- a/drivers/infiniband/core/fmr_pool.c +++ b/drivers/infiniband/core/fmr_pool.c @@ -118,14 +118,13 @@ static inline struct ib_pool_fmr *ib_fmr_cache_lookup(struct ib_fmr_pool *pool,  {  	struct hlist_head *bucket;  	struct ib_pool_fmr *fmr; -	struct hlist_node *pos;  	if (!pool->cache_bucket)  		return NULL;  	bucket = pool->cache_bucket + ib_fmr_hash(*page_list); -	hlist_for_each_entry(fmr, pos, bucket, cache_node) +	hlist_for_each_entry(fmr, bucket, cache_node)  		if (io_virtual_address == fmr->io_virtual_address &&  		    page_list_len      == fmr->page_list_len      &&  		    !memcmp(page_list, fmr->page_list, diff --git a/drivers/isdn/mISDN/socket.c b/drivers/isdn/mISDN/socket.c index abe2d699b6f..8b07f83d48a 100644 --- a/drivers/isdn/mISDN/socket.c +++ b/drivers/isdn/mISDN/socket.c @@ -483,7 +483,6 @@ data_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_len)  {  	struct sockaddr_mISDN *maddr = (struct sockaddr_mISDN *) addr;  	struct sock *sk = sock->sk; -	struct hlist_node *node;  	struct sock *csk;  	int err = 0; @@ -508,7 +507,7 @@ data_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_len)  	if (sk->sk_protocol < ISDN_P_B_START) {  		read_lock_bh(&data_sockets.lock); -		sk_for_each(csk, node, &data_sockets.head) { +		sk_for_each(csk, &data_sockets.head) {  			if (sk == csk)  				continue;  			if (_pms(csk)->dev != _pms(sk)->dev) diff --git a/drivers/isdn/mISDN/stack.c b/drivers/isdn/mISDN/stack.c index deda591f70b..9cb4b621fbc 100644 --- a/drivers/isdn/mISDN/stack.c +++ b/drivers/isdn/mISDN/stack.c @@ -64,12 +64,11 @@ unlock:  static void  send_socklist(struct mISDN_sock_list *sl, struct sk_buff *skb)  { -	struct hlist_node	*node;  	struct sock		*sk;  	struct sk_buff		*cskb = NULL;  	read_lock(&sl->lock); -	sk_for_each(sk, node, &sl->head) { +	sk_for_each(sk, &sl->head) {  		if (sk->sk_state != MISDN_BOUND)  			continue;  		if (!cskb) diff --git a/drivers/md/dm-bio-prison.c b/drivers/md/dm-bio-prison.c index aefb78e3cbf..d9d3f1c7b66 100644 --- a/drivers/md/dm-bio-prison.c +++ b/drivers/md/dm-bio-prison.c @@ -106,9 +106,8 @@ static struct dm_bio_prison_cell *__search_bucket(struct hlist_head *bucket,  						  struct dm_cell_key *key)  {  	struct dm_bio_prison_cell *cell; -	struct hlist_node *tmp; -	hlist_for_each_entry(cell, tmp, bucket, list) +	hlist_for_each_entry(cell, bucket, list)  		if (keys_equal(&cell->key, key))  			return cell; diff --git a/drivers/md/dm-bufio.c b/drivers/md/dm-bufio.c index 651ca79881d..93205e32a00 100644 --- a/drivers/md/dm-bufio.c +++ b/drivers/md/dm-bufio.c @@ -859,9 +859,8 @@ static void __check_watermark(struct dm_bufio_client *c)  static struct dm_buffer *__find(struct dm_bufio_client *c, sector_t block)  {  	struct dm_buffer *b; -	struct hlist_node *hn; -	hlist_for_each_entry(b, hn, &c->cache_hash[DM_BUFIO_HASH(block)], +	hlist_for_each_entry(b, &c->cache_hash[DM_BUFIO_HASH(block)],  			     hash_list) {  		dm_bufio_cond_resched();  		if (b->block == block) diff --git a/drivers/md/dm-snap.c b/drivers/md/dm-snap.c index 59fc18ae52c..10079e07edf 100644 --- a/drivers/md/dm-snap.c +++ b/drivers/md/dm-snap.c @@ -227,12 +227,11 @@ static void stop_tracking_chunk(struct dm_snapshot *s, struct bio *bio)  static int __chunk_is_tracked(struct dm_snapshot *s, chunk_t chunk)  {  	struct dm_snap_tracked_chunk *c; -	struct hlist_node *hn;  	int found = 0;  	spin_lock_irq(&s->tracked_chunk_lock); -	hlist_for_each_entry(c, hn, +	hlist_for_each_entry(c,  	    &s->tracked_chunk_hash[DM_TRACKED_CHUNK_HASH(chunk)], node) {  		if (c->chunk == chunk) {  			found = 1; diff --git a/drivers/md/persistent-data/dm-transaction-manager.c b/drivers/md/persistent-data/dm-transaction-manager.c index 7b17a1fdeaf..81da1a26042 100644 --- a/drivers/md/persistent-data/dm-transaction-manager.c +++ b/drivers/md/persistent-data/dm-transaction-manager.c @@ -46,10 +46,9 @@ static int is_shadow(struct dm_transaction_manager *tm, dm_block_t b)  	int r = 0;  	unsigned bucket = dm_hash_block(b, DM_HASH_MASK);  	struct shadow_info *si; -	struct hlist_node *n;  	spin_lock(&tm->lock); -	hlist_for_each_entry(si, n, tm->buckets + bucket, hlist) +	hlist_for_each_entry(si, tm->buckets + bucket, hlist)  		if (si->where == b) {  			r = 1;  			break; @@ -81,14 +80,14 @@ static void insert_shadow(struct dm_transaction_manager *tm, dm_block_t b)  static void wipe_shadow_table(struct dm_transaction_manager *tm)  {  	struct shadow_info *si; -	struct hlist_node *n, *tmp; +	struct hlist_node *tmp;  	struct hlist_head *bucket;  	int i;  	spin_lock(&tm->lock);  	for (i = 0; i < DM_HASH_SIZE; i++) {  		bucket = tm->buckets + i; -		hlist_for_each_entry_safe(si, n, tmp, bucket, hlist) +		hlist_for_each_entry_safe(si, tmp, bucket, hlist)  			kfree(si);  		INIT_HLIST_HEAD(bucket); diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 19d77a02663..697f026cb31 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c @@ -365,10 +365,9 @@ static struct stripe_head *__find_stripe(struct r5conf *conf, sector_t sector,  					 short generation)  {  	struct stripe_head *sh; -	struct hlist_node *hn;  	pr_debug("__find_stripe, sector %llu\n", (unsigned long long)sector); -	hlist_for_each_entry(sh, hn, stripe_hash(conf, sector), hash) +	hlist_for_each_entry(sh, stripe_hash(conf, sector), hash)  		if (sh->sector == sector && sh->generation == generation)  			return sh;  	pr_debug("__stripe %llu not in cache\n", (unsigned long long)sector); diff --git a/drivers/misc/sgi-gru/grutlbpurge.c b/drivers/misc/sgi-gru/grutlbpurge.c index 240a6d36166..2129274ef7a 100644 --- a/drivers/misc/sgi-gru/grutlbpurge.c +++ b/drivers/misc/sgi-gru/grutlbpurge.c @@ -280,11 +280,10 @@ static struct mmu_notifier *mmu_find_ops(struct mm_struct *mm,  			const struct mmu_notifier_ops *ops)  {  	struct mmu_notifier *mn, *gru_mn = NULL; -	struct hlist_node *n;  	if (mm->mmu_notifier_mm) {  		rcu_read_lock(); -		hlist_for_each_entry_rcu(mn, n, &mm->mmu_notifier_mm->list, +		hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list,  					 hlist)  		    if (mn->ops == ops) {  			gru_mn = mn; diff --git a/drivers/misc/vmw_vmci/vmci_doorbell.c b/drivers/misc/vmw_vmci/vmci_doorbell.c index c3e8397f62e..a8cee33ae8d 100644 --- a/drivers/misc/vmw_vmci/vmci_doorbell.c +++ b/drivers/misc/vmw_vmci/vmci_doorbell.c @@ -127,9 +127,8 @@ static struct dbell_entry *dbell_index_table_find(u32 idx)  {  	u32 bucket = VMCI_DOORBELL_HASH(idx);  	struct dbell_entry *dbell; -	struct hlist_node *node; -	hlist_for_each_entry(dbell, node, &vmci_doorbell_it.entries[bucket], +	hlist_for_each_entry(dbell, &vmci_doorbell_it.entries[bucket],  			     node) {  		if (idx == dbell->idx)  			return dbell; @@ -359,12 +358,10 @@ static void dbell_fire_entries(u32 notify_idx)  {  	u32 bucket = VMCI_DOORBELL_HASH(notify_idx);  	struct dbell_entry *dbell; -	struct hlist_node *node;  	spin_lock_bh(&vmci_doorbell_it.lock); -	hlist_for_each_entry(dbell, node, -			     &vmci_doorbell_it.entries[bucket], node) { +	hlist_for_each_entry(dbell, &vmci_doorbell_it.entries[bucket], node) {  		if (dbell->idx == notify_idx &&  		    atomic_read(&dbell->active) == 1) {  			if (dbell->run_delayed) { diff --git a/drivers/misc/vmw_vmci/vmci_resource.c b/drivers/misc/vmw_vmci/vmci_resource.c index a196f84a4fd..9a53a30de44 100644 --- a/drivers/misc/vmw_vmci/vmci_resource.c +++ b/drivers/misc/vmw_vmci/vmci_resource.c @@ -46,11 +46,10 @@ static struct vmci_resource *vmci_resource_lookup(struct vmci_handle handle,  						  enum vmci_resource_type type)  {  	struct vmci_resource *r, *resource = NULL; -	struct hlist_node *node;  	unsigned int idx = vmci_resource_hash(handle);  	rcu_read_lock(); -	hlist_for_each_entry_rcu(r, node, +	hlist_for_each_entry_rcu(r,  				 &vmci_resource_table.entries[idx], node) {  		u32 cid = r->handle.context;  		u32 rid = r->handle.resource; @@ -146,12 +145,11 @@ void vmci_resource_remove(struct vmci_resource *resource)  	struct vmci_handle handle = resource->handle;  	unsigned int idx = vmci_resource_hash(handle);  	struct vmci_resource *r; -	struct hlist_node *node;  	/* Remove resource from hash table. */  	spin_lock(&vmci_resource_table.lock); -	hlist_for_each_entry(r, node, &vmci_resource_table.entries[idx], node) { +	hlist_for_each_entry(r, &vmci_resource_table.entries[idx], node) {  		if (vmci_handle_is_equal(r->handle, resource->handle)) {  			hlist_del_init_rcu(&r->node);  			break; diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c index f4d2e9e3c6d..c3f1afd8690 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c @@ -2197,13 +2197,13 @@ static int ixgbe_get_ethtool_fdir_entry(struct ixgbe_adapter *adapter,  	union ixgbe_atr_input *mask = &adapter->fdir_mask;  	struct ethtool_rx_flow_spec *fsp =  		(struct ethtool_rx_flow_spec *)&cmd->fs; -	struct hlist_node *node, *node2; +	struct hlist_node *node2;  	struct ixgbe_fdir_filter *rule = NULL;  	/* report total rule count */  	cmd->data = (1024 << adapter->fdir_pballoc) - 2; -	hlist_for_each_entry_safe(rule, node, node2, +	hlist_for_each_entry_safe(rule, node2,  				  &adapter->fdir_filter_list, fdir_node) {  		if (fsp->location <= rule->sw_idx)  			break; @@ -2264,14 +2264,14 @@ static int ixgbe_get_ethtool_fdir_all(struct ixgbe_adapter *adapter,  				      struct ethtool_rxnfc *cmd,  				      u32 *rule_locs)  { -	struct hlist_node *node, *node2; +	struct hlist_node *node2;  	struct ixgbe_fdir_filter *rule;  	int cnt = 0;  	/* report total rule count */  	cmd->data = (1024 << adapter->fdir_pballoc) - 2; -	hlist_for_each_entry_safe(rule, node, node2, +	hlist_for_each_entry_safe(rule, node2,  				  &adapter->fdir_filter_list, fdir_node) {  		if (cnt == cmd->rule_cnt)  			return -EMSGSIZE; @@ -2358,19 +2358,19 @@ static int ixgbe_update_ethtool_fdir_entry(struct ixgbe_adapter *adapter,  					   u16 sw_idx)  {  	struct ixgbe_hw *hw = &adapter->hw; -	struct hlist_node *node, *node2, *parent; -	struct ixgbe_fdir_filter *rule; +	struct hlist_node *node2; +	struct ixgbe_fdir_filter *rule, *parent;  	int err = -EINVAL;  	parent = NULL;  	rule = NULL; -	hlist_for_each_entry_safe(rule, node, node2, +	hlist_for_each_entry_safe(rule, node2,  				  &adapter->fdir_filter_list, fdir_node) {  		/* hash found, or no matching entry */  		if (rule->sw_idx >= sw_idx)  			break; -		parent = node; +		parent = rule;  	}  	/* if there is an old rule occupying our place remove it */ @@ -2399,7 +2399,7 @@ static int ixgbe_update_ethtool_fdir_entry(struct ixgbe_adapter *adapter,  	/* add filter to the list */  	if (parent) -		hlist_add_after(parent, &input->fdir_node); +		hlist_add_after(&parent->fdir_node, &input->fdir_node);  	else  		hlist_add_head(&input->fdir_node,  			       &adapter->fdir_filter_list); diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 68478d6dfa2..db5611ae407 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -3891,7 +3891,7 @@ static void ixgbe_configure_pb(struct ixgbe_adapter *adapter)  static void ixgbe_fdir_filter_restore(struct ixgbe_adapter *adapter)  {  	struct ixgbe_hw *hw = &adapter->hw; -	struct hlist_node *node, *node2; +	struct hlist_node *node2;  	struct ixgbe_fdir_filter *filter;  	spin_lock(&adapter->fdir_perfect_lock); @@ -3899,7 +3899,7 @@ static void ixgbe_fdir_filter_restore(struct ixgbe_adapter *adapter)  	if (!hlist_empty(&adapter->fdir_filter_list))  		ixgbe_fdir_set_input_mask_82599(hw, &adapter->fdir_mask); -	hlist_for_each_entry_safe(filter, node, node2, +	hlist_for_each_entry_safe(filter, node2,  				  &adapter->fdir_filter_list, fdir_node) {  		ixgbe_fdir_write_perfect_filter_82599(hw,  				&filter->filter, @@ -4356,12 +4356,12 @@ static void ixgbe_clean_all_tx_rings(struct ixgbe_adapter *adapter)  static void ixgbe_fdir_filter_exit(struct ixgbe_adapter *adapter)  { -	struct hlist_node *node, *node2; +	struct hlist_node *node2;  	struct ixgbe_fdir_filter *filter;  	spin_lock(&adapter->fdir_perfect_lock); -	hlist_for_each_entry_safe(filter, node, node2, +	hlist_for_each_entry_safe(filter, node2,  				  &adapter->fdir_filter_list, fdir_node) {  		hlist_del(&filter->fdir_node);  		kfree(filter); diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c index 5385474bb52..bb4d8d99f36 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c @@ -225,11 +225,10 @@ static inline struct mlx4_en_filter *  mlx4_en_filter_find(struct mlx4_en_priv *priv, __be32 src_ip, __be32 dst_ip,  		    __be16 src_port, __be16 dst_port)  { -	struct hlist_node *elem;  	struct mlx4_en_filter *filter;  	struct mlx4_en_filter *ret = NULL; -	hlist_for_each_entry(filter, elem, +	hlist_for_each_entry(filter,  			     filter_hash_bucket(priv, src_ip, dst_ip,  						src_port, dst_port),  			     filter_chain) { @@ -574,13 +573,13 @@ static void mlx4_en_put_qp(struct mlx4_en_priv *priv)  	if (dev->caps.steering_mode != MLX4_STEERING_MODE_A0) {  		struct mlx4_mac_entry *entry; -		struct hlist_node *n, *tmp; +		struct hlist_node *tmp;  		struct hlist_head *bucket;  		unsigned int mac_hash;  		mac_hash = priv->dev->dev_addr[MLX4_EN_MAC_HASH_IDX];  		bucket = &priv->mac_hash[mac_hash]; -		hlist_for_each_entry_safe(entry, n, tmp, bucket, hlist) { +		hlist_for_each_entry_safe(entry, tmp, bucket, hlist) {  			if (ether_addr_equal_64bits(entry->mac,  						    priv->dev->dev_addr)) {  				en_dbg(DRV, priv, "Releasing qp: port %d, MAC %pM, qpn %d\n", @@ -609,11 +608,11 @@ static int mlx4_en_replace_mac(struct mlx4_en_priv *priv, int qpn,  		struct hlist_head *bucket;  		unsigned int mac_hash;  		struct mlx4_mac_entry *entry; -		struct hlist_node *n, *tmp; +		struct hlist_node *tmp;  		u64 prev_mac_u64 = mlx4_en_mac_to_u64(prev_mac);  		bucket = &priv->mac_hash[prev_mac[MLX4_EN_MAC_HASH_IDX]]; -		hlist_for_each_entry_safe(entry, n, tmp, bucket, hlist) { +		hlist_for_each_entry_safe(entry, tmp, bucket, hlist) {  			if (ether_addr_equal_64bits(entry->mac, prev_mac)) {  				mlx4_en_uc_steer_release(priv, entry->mac,  							 qpn, entry->reg_id); @@ -1019,7 +1018,7 @@ static void mlx4_en_do_uc_filter(struct mlx4_en_priv *priv,  {  	struct netdev_hw_addr *ha;  	struct mlx4_mac_entry *entry; -	struct hlist_node *n, *tmp; +	struct hlist_node *tmp;  	bool found;  	u64 mac;  	int err = 0; @@ -1035,7 +1034,7 @@ static void mlx4_en_do_uc_filter(struct mlx4_en_priv *priv,  	/* find what to remove */  	for (i = 0; i < MLX4_EN_MAC_HASH_SIZE; ++i) {  		bucket = &priv->mac_hash[i]; -		hlist_for_each_entry_safe(entry, n, tmp, bucket, hlist) { +		hlist_for_each_entry_safe(entry, tmp, bucket, hlist) {  			found = false;  			netdev_for_each_uc_addr(ha, dev) {  				if (ether_addr_equal_64bits(entry->mac, @@ -1078,7 +1077,7 @@ static void mlx4_en_do_uc_filter(struct mlx4_en_priv *priv,  	netdev_for_each_uc_addr(ha, dev) {  		found = false;  		bucket = &priv->mac_hash[ha->addr[MLX4_EN_MAC_HASH_IDX]]; -		hlist_for_each_entry(entry, n, bucket, hlist) { +		hlist_for_each_entry(entry, bucket, hlist) {  			if (ether_addr_equal_64bits(entry->mac, ha->addr)) {  				found = true;  				break; diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c index ce38654bbdd..c7f856308e1 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c @@ -35,6 +35,7 @@  #include <linux/slab.h>  #include <linux/mlx4/qp.h>  #include <linux/skbuff.h> +#include <linux/rculist.h>  #include <linux/if_ether.h>  #include <linux/if_vlan.h>  #include <linux/vmalloc.h> @@ -617,7 +618,6 @@ int mlx4_en_process_rx_cq(struct net_device *dev, struct mlx4_en_cq *cq, int bud  			if (is_multicast_ether_addr(ethh->h_dest)) {  				struct mlx4_mac_entry *entry; -				struct hlist_node *n;  				struct hlist_head *bucket;  				unsigned int mac_hash; @@ -625,7 +625,7 @@ int mlx4_en_process_rx_cq(struct net_device *dev, struct mlx4_en_cq *cq, int bud  				mac_hash = ethh->h_source[MLX4_EN_MAC_HASH_IDX];  				bucket = &priv->mac_hash[mac_hash];  				rcu_read_lock(); -				hlist_for_each_entry_rcu(entry, n, bucket, hlist) { +				hlist_for_each_entry_rcu(entry, bucket, hlist) {  					if (ether_addr_equal_64bits(entry->mac,  								    ethh->h_source)) {  						rcu_read_unlock(); diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c index 325e11e1ce0..f89cc7a3fe6 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c @@ -576,7 +576,7 @@ void qlcnic_free_mac_list(struct qlcnic_adapter *adapter)  void qlcnic_prune_lb_filters(struct qlcnic_adapter *adapter)  {  	struct qlcnic_filter *tmp_fil; -	struct hlist_node *tmp_hnode, *n; +	struct hlist_node *n;  	struct hlist_head *head;  	int i;  	unsigned long time; @@ -584,7 +584,7 @@ void qlcnic_prune_lb_filters(struct qlcnic_adapter *adapter)  	for (i = 0; i < adapter->fhash.fbucket_size; i++) {  		head = &(adapter->fhash.fhead[i]); -		hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) { +		hlist_for_each_entry_safe(tmp_fil, n, head, fnode) {  			cmd =  tmp_fil->vlan_id ? QLCNIC_MAC_VLAN_DEL :  						  QLCNIC_MAC_DEL;  			time = tmp_fil->ftime; @@ -604,7 +604,7 @@ void qlcnic_prune_lb_filters(struct qlcnic_adapter *adapter)  	for (i = 0; i < adapter->rx_fhash.fbucket_size; i++) {  		head = &(adapter->rx_fhash.fhead[i]); -		hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) +		hlist_for_each_entry_safe(tmp_fil, n, head, fnode)  		{  			time = tmp_fil->ftime;  			if (jiffies > (QLCNIC_FILTER_AGE * HZ + time)) { @@ -621,14 +621,14 @@ void qlcnic_prune_lb_filters(struct qlcnic_adapter *adapter)  void qlcnic_delete_lb_filters(struct qlcnic_adapter *adapter)  {  	struct qlcnic_filter *tmp_fil; -	struct hlist_node *tmp_hnode, *n; +	struct hlist_node *n;  	struct hlist_head *head;  	int i;  	u8 cmd;  	for (i = 0; i < adapter->fhash.fbucket_size; i++) {  		head = &(adapter->fhash.fhead[i]); -		hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) { +		hlist_for_each_entry_safe(tmp_fil, n, head, fnode) {  			cmd =  tmp_fil->vlan_id ? QLCNIC_MAC_VLAN_DEL :  						  QLCNIC_MAC_DEL;  			qlcnic_sre_macaddr_change(adapter, diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c index 6387e0cc3ea..0e630061bff 100644 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c @@ -162,7 +162,7 @@ void qlcnic_add_lb_filter(struct qlcnic_adapter *adapter, struct sk_buff *skb,  {  	struct ethhdr *phdr = (struct ethhdr *)(skb->data);  	struct qlcnic_filter *fil, *tmp_fil; -	struct hlist_node *tmp_hnode, *n; +	struct hlist_node *n;  	struct hlist_head *head;  	unsigned long time;  	u64 src_addr = 0; @@ -179,7 +179,7 @@ void qlcnic_add_lb_filter(struct qlcnic_adapter *adapter, struct sk_buff *skb,  			 (adapter->fhash.fbucket_size - 1);  		head = &(adapter->rx_fhash.fhead[hindex]); -		hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) { +		hlist_for_each_entry_safe(tmp_fil, n, head, fnode) {  			if (!memcmp(tmp_fil->faddr, &src_addr, ETH_ALEN) &&  			    tmp_fil->vlan_id == vlan_id) {  				time = tmp_fil->ftime; @@ -205,7 +205,7 @@ void qlcnic_add_lb_filter(struct qlcnic_adapter *adapter, struct sk_buff *skb,  			 (adapter->fhash.fbucket_size - 1);  		head = &(adapter->rx_fhash.fhead[hindex]);  		spin_lock(&adapter->rx_mac_learn_lock); -		hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) { +		hlist_for_each_entry_safe(tmp_fil, n, head, fnode) {  			if (!memcmp(tmp_fil->faddr, &src_addr, ETH_ALEN) &&  			    tmp_fil->vlan_id == vlan_id) {  				found = 1; @@ -272,7 +272,7 @@ static void qlcnic_send_filter(struct qlcnic_adapter *adapter,  			       struct sk_buff *skb)  {  	struct qlcnic_filter *fil, *tmp_fil; -	struct hlist_node *tmp_hnode, *n; +	struct hlist_node *n;  	struct hlist_head *head;  	struct net_device *netdev = adapter->netdev;  	struct ethhdr *phdr = (struct ethhdr *)(skb->data); @@ -294,7 +294,7 @@ static void qlcnic_send_filter(struct qlcnic_adapter *adapter,  	hindex = qlcnic_mac_hash(src_addr) & (adapter->fhash.fbucket_size - 1);  	head = &(adapter->fhash.fhead[hindex]); -	hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) { +	hlist_for_each_entry_safe(tmp_fil, n, head, fnode) {  		if (!memcmp(tmp_fil->faddr, &src_addr, ETH_ALEN) &&  		    tmp_fil->vlan_id == vlan_id) {  			if (jiffies > (QLCNIC_READD_AGE * HZ + tmp_fil->ftime)) diff --git a/drivers/net/ethernet/sun/sunvnet.c b/drivers/net/ethernet/sun/sunvnet.c index 289b4eefb42..1df0ff3839e 100644 --- a/drivers/net/ethernet/sun/sunvnet.c +++ b/drivers/net/ethernet/sun/sunvnet.c @@ -614,10 +614,9 @@ struct vnet_port *__tx_port_find(struct vnet *vp, struct sk_buff *skb)  {  	unsigned int hash = vnet_hashfn(skb->data);  	struct hlist_head *hp = &vp->port_hash[hash]; -	struct hlist_node *n;  	struct vnet_port *port; -	hlist_for_each_entry(port, n, hp, hash) { +	hlist_for_each_entry(port, hp, hash) {  		if (ether_addr_equal(port->raddr, skb->data))  			return port;  	} diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index defcd8a8574..417b2af1aa8 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c @@ -55,9 +55,8 @@ static struct macvlan_dev *macvlan_hash_lookup(const struct macvlan_port *port,  					       const unsigned char *addr)  {  	struct macvlan_dev *vlan; -	struct hlist_node *n; -	hlist_for_each_entry_rcu(vlan, n, &port->vlan_hash[addr[5]], hlist) { +	hlist_for_each_entry_rcu(vlan, &port->vlan_hash[addr[5]], hlist) {  		if (ether_addr_equal_64bits(vlan->dev->dev_addr, addr))  			return vlan;  	} @@ -149,7 +148,6 @@ static void macvlan_broadcast(struct sk_buff *skb,  {  	const struct ethhdr *eth = eth_hdr(skb);  	const struct macvlan_dev *vlan; -	struct hlist_node *n;  	struct sk_buff *nskb;  	unsigned int i;  	int err; @@ -159,7 +157,7 @@ static void macvlan_broadcast(struct sk_buff *skb,  		return;  	for (i = 0; i < MACVLAN_HASH_SIZE; i++) { -		hlist_for_each_entry_rcu(vlan, n, &port->vlan_hash[i], hlist) { +		hlist_for_each_entry_rcu(vlan, &port->vlan_hash[i], hlist) {  			if (vlan->dev == src || !(vlan->mode & mode))  				continue; diff --git a/drivers/net/tun.c b/drivers/net/tun.c index b6f45c5d84d..2c6a22e278e 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c @@ -197,9 +197,8 @@ static inline u32 tun_hashfn(u32 rxhash)  static struct tun_flow_entry *tun_flow_find(struct hlist_head *head, u32 rxhash)  {  	struct tun_flow_entry *e; -	struct hlist_node *n; -	hlist_for_each_entry_rcu(e, n, head, hash_link) { +	hlist_for_each_entry_rcu(e, head, hash_link) {  		if (e->rxhash == rxhash)  			return e;  	} @@ -241,9 +240,9 @@ static void tun_flow_flush(struct tun_struct *tun)  	spin_lock_bh(&tun->lock);  	for (i = 0; i < TUN_NUM_FLOW_ENTRIES; i++) {  		struct tun_flow_entry *e; -		struct hlist_node *h, *n; +		struct hlist_node *n; -		hlist_for_each_entry_safe(e, h, n, &tun->flows[i], hash_link) +		hlist_for_each_entry_safe(e, n, &tun->flows[i], hash_link)  			tun_flow_delete(tun, e);  	}  	spin_unlock_bh(&tun->lock); @@ -256,9 +255,9 @@ static void tun_flow_delete_by_queue(struct tun_struct *tun, u16 queue_index)  	spin_lock_bh(&tun->lock);  	for (i = 0; i < TUN_NUM_FLOW_ENTRIES; i++) {  		struct tun_flow_entry *e; -		struct hlist_node *h, *n; +		struct hlist_node *n; -		hlist_for_each_entry_safe(e, h, n, &tun->flows[i], hash_link) { +		hlist_for_each_entry_safe(e, n, &tun->flows[i], hash_link) {  			if (e->queue_index == queue_index)  				tun_flow_delete(tun, e);  		} @@ -279,9 +278,9 @@ static void tun_flow_cleanup(unsigned long data)  	spin_lock_bh(&tun->lock);  	for (i = 0; i < TUN_NUM_FLOW_ENTRIES; i++) {  		struct tun_flow_entry *e; -		struct hlist_node *h, *n; +		struct hlist_node *n; -		hlist_for_each_entry_safe(e, h, n, &tun->flows[i], hash_link) { +		hlist_for_each_entry_safe(e, n, &tun->flows[i], hash_link) {  			unsigned long this_timer;  			count++;  			this_timer = e->updated + delay; diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index f736823f843..f10e58ac9c1 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -145,9 +145,8 @@ static inline struct hlist_head *vni_head(struct net *net, u32 id)  static struct vxlan_dev *vxlan_find_vni(struct net *net, u32 id)  {  	struct vxlan_dev *vxlan; -	struct hlist_node *node; -	hlist_for_each_entry_rcu(vxlan, node, vni_head(net, id), hlist) { +	hlist_for_each_entry_rcu(vxlan, vni_head(net, id), hlist) {  		if (vxlan->vni == id)  			return vxlan;  	} @@ -292,9 +291,8 @@ static struct vxlan_fdb *vxlan_find_mac(struct vxlan_dev *vxlan,  {  	struct hlist_head *head = vxlan_fdb_head(vxlan, mac);  	struct vxlan_fdb *f; -	struct hlist_node *node; -	hlist_for_each_entry_rcu(f, node, head, hlist) { +	hlist_for_each_entry_rcu(f, head, hlist) {  		if (compare_ether_addr(mac, f->eth_addr) == 0)  			return f;  	} @@ -422,10 +420,9 @@ static int vxlan_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb,  	for (h = 0; h < FDB_HASH_SIZE; ++h) {  		struct vxlan_fdb *f; -		struct hlist_node *n;  		int err; -		hlist_for_each_entry_rcu(f, n, &vxlan->fdb_head[h], hlist) { +		hlist_for_each_entry_rcu(f, &vxlan->fdb_head[h], hlist) {  			if (idx < cb->args[0])  				goto skip; @@ -483,11 +480,10 @@ static bool vxlan_group_used(struct vxlan_net *vn,  			     const struct vxlan_dev *this)  {  	const struct vxlan_dev *vxlan; -	struct hlist_node *node;  	unsigned h;  	for (h = 0; h < VNI_HASH_SIZE; ++h) -		hlist_for_each_entry(vxlan, node, &vn->vni_list[h], hlist) { +		hlist_for_each_entry(vxlan, &vn->vni_list[h], hlist) {  			if (vxlan == this)  				continue; diff --git a/drivers/net/wireless/zd1201.c b/drivers/net/wireless/zd1201.c index 48273dd05b6..4941f201d6c 100644 --- a/drivers/net/wireless/zd1201.c +++ b/drivers/net/wireless/zd1201.c @@ -309,7 +309,6 @@ static void zd1201_usbrx(struct urb *urb)  	if (data[urb->actual_length-1] == ZD1201_PACKET_RXDATA) {  		int datalen = urb->actual_length-1;  		unsigned short len, fc, seq; -		struct hlist_node *node;  		len = ntohs(*(__be16 *)&data[datalen-2]);  		if (len>datalen) @@ -362,7 +361,7 @@ static void zd1201_usbrx(struct urb *urb)  				hlist_add_head(&frag->fnode, &zd->fraglist);  				goto resubmit;  			} -			hlist_for_each_entry(frag, node, &zd->fraglist, fnode) +			hlist_for_each_entry(frag, &zd->fraglist, fnode)  				if (frag->seq == (seq&IEEE80211_SCTL_SEQ))  					break;  			if (!frag) @@ -1831,14 +1830,14 @@ err_zd:  static void zd1201_disconnect(struct usb_interface *interface)  {  	struct zd1201 *zd = usb_get_intfdata(interface); -	struct hlist_node *node, *node2; +	struct hlist_node *node2;  	struct zd1201_frag *frag;  	if (!zd)  		return;  	usb_set_intfdata(interface, NULL); -	hlist_for_each_entry_safe(frag, node, node2, &zd->fraglist, fnode) { +	hlist_for_each_entry_safe(frag, node2, &zd->fraglist, fnode) {  		hlist_del_init(&frag->fnode);  		kfree_skb(frag->skb);  		kfree(frag); diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 924e4665bd5..b099e0025d2 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -842,9 +842,8 @@ static struct pci_cap_saved_state *pci_find_saved_cap(  	struct pci_dev *pci_dev, char cap)  {  	struct pci_cap_saved_state *tmp; -	struct hlist_node *pos; -	hlist_for_each_entry(tmp, pos, &pci_dev->saved_cap_space, next) { +	hlist_for_each_entry(tmp, &pci_dev->saved_cap_space, next) {  		if (tmp->cap.cap_nr == cap)  			return tmp;  	} @@ -1041,7 +1040,6 @@ struct pci_saved_state *pci_store_saved_state(struct pci_dev *dev)  	struct pci_saved_state *state;  	struct pci_cap_saved_state *tmp;  	struct pci_cap_saved_data *cap; -	struct hlist_node *pos;  	size_t size;  	if (!dev->state_saved) @@ -1049,7 +1047,7 @@ struct pci_saved_state *pci_store_saved_state(struct pci_dev *dev)  	size = sizeof(*state) + sizeof(struct pci_cap_saved_data); -	hlist_for_each_entry(tmp, pos, &dev->saved_cap_space, next) +	hlist_for_each_entry(tmp, &dev->saved_cap_space, next)  		size += sizeof(struct pci_cap_saved_data) + tmp->cap.size;  	state = kzalloc(size, GFP_KERNEL); @@ -1060,7 +1058,7 @@ struct pci_saved_state *pci_store_saved_state(struct pci_dev *dev)  	       sizeof(state->config_space));  	cap = state->cap; -	hlist_for_each_entry(tmp, pos, &dev->saved_cap_space, next) { +	hlist_for_each_entry(tmp, &dev->saved_cap_space, next) {  		size_t len = sizeof(struct pci_cap_saved_data) + tmp->cap.size;  		memcpy(cap, &tmp->cap, len);  		cap = (struct pci_cap_saved_data *)((u8 *)cap + len); @@ -2038,9 +2036,9 @@ void pci_allocate_cap_save_buffers(struct pci_dev *dev)  void pci_free_cap_save_buffers(struct pci_dev *dev)  {  	struct pci_cap_saved_state *tmp; -	struct hlist_node *pos, *n; +	struct hlist_node *n; -	hlist_for_each_entry_safe(tmp, pos, n, &dev->saved_cap_space, next) +	hlist_for_each_entry_safe(tmp, n, &dev->saved_cap_space, next)  		kfree(tmp);  } diff --git a/drivers/staging/android/binder.c b/drivers/staging/android/binder.c index 538ebe21312..24456a0de6b 100644 --- a/drivers/staging/android/binder.c +++ b/drivers/staging/android/binder.c @@ -2880,7 +2880,6 @@ static int binder_release(struct inode *nodp, struct file *filp)  static void binder_deferred_release(struct binder_proc *proc)  { -	struct hlist_node *pos;  	struct binder_transaction *t;  	struct rb_node *n;  	int threads, nodes, incoming_refs, outgoing_refs, buffers, active_transactions, page_count; @@ -2924,7 +2923,7 @@ static void binder_deferred_release(struct binder_proc *proc)  			node->local_weak_refs = 0;  			hlist_add_head(&node->dead_node, &binder_dead_nodes); -			hlist_for_each_entry(ref, pos, &node->refs, node_entry) { +			hlist_for_each_entry(ref, &node->refs, node_entry) {  				incoming_refs++;  				if (ref->death) {  					death++; @@ -3156,12 +3155,11 @@ static void print_binder_thread(struct seq_file *m,  static void print_binder_node(struct seq_file *m, struct binder_node *node)  {  	struct binder_ref *ref; -	struct hlist_node *pos;  	struct binder_work *w;  	int count;  	count = 0; -	hlist_for_each_entry(ref, pos, &node->refs, node_entry) +	hlist_for_each_entry(ref, &node->refs, node_entry)  		count++;  	seq_printf(m, "  node %d: u%p c%p hs %d hw %d ls %d lw %d is %d iw %d", @@ -3171,7 +3169,7 @@ static void print_binder_node(struct seq_file *m, struct binder_node *node)  		   node->internal_strong_refs, count);  	if (count) {  		seq_puts(m, " proc"); -		hlist_for_each_entry(ref, pos, &node->refs, node_entry) +		hlist_for_each_entry(ref, &node->refs, node_entry)  			seq_printf(m, " %d", ref->proc->pid);  	}  	seq_puts(m, "\n"); @@ -3369,7 +3367,6 @@ static void print_binder_proc_stats(struct seq_file *m,  static int binder_state_show(struct seq_file *m, void *unused)  {  	struct binder_proc *proc; -	struct hlist_node *pos;  	struct binder_node *node;  	int do_lock = !binder_debug_no_lock; @@ -3380,10 +3377,10 @@ static int binder_state_show(struct seq_file *m, void *unused)  	if (!hlist_empty(&binder_dead_nodes))  		seq_puts(m, "dead nodes:\n"); -	hlist_for_each_entry(node, pos, &binder_dead_nodes, dead_node) +	hlist_for_each_entry(node, &binder_dead_nodes, dead_node)  		print_binder_node(m, node); -	hlist_for_each_entry(proc, pos, &binder_procs, proc_node) +	hlist_for_each_entry(proc, &binder_procs, proc_node)  		print_binder_proc(m, proc, 1);  	if (do_lock)  		binder_unlock(__func__); @@ -3393,7 +3390,6 @@ static int binder_state_show(struct seq_file *m, void *unused)  static int binder_stats_show(struct seq_file *m, void *unused)  {  	struct binder_proc *proc; -	struct hlist_node *pos;  	int do_lock = !binder_debug_no_lock;  	if (do_lock) @@ -3403,7 +3399,7 @@ static int binder_stats_show(struct seq_file *m, void *unused)  	print_binder_stats(m, "", &binder_stats); -	hlist_for_each_entry(proc, pos, &binder_procs, proc_node) +	hlist_for_each_entry(proc, &binder_procs, proc_node)  		print_binder_proc_stats(m, proc);  	if (do_lock)  		binder_unlock(__func__); @@ -3413,14 +3409,13 @@ static int binder_stats_show(struct seq_file *m, void *unused)  static int binder_transactions_show(struct seq_file *m, void *unused)  {  	struct binder_proc *proc; -	struct hlist_node *pos;  	int do_lock = !binder_debug_no_lock;  	if (do_lock)  		binder_lock(__func__);  	seq_puts(m, "binder transactions:\n"); -	hlist_for_each_entry(proc, pos, &binder_procs, proc_node) +	hlist_for_each_entry(proc, &binder_procs, proc_node)  		print_binder_proc(m, proc, 0);  	if (do_lock)  		binder_unlock(__func__); diff --git a/drivers/target/tcm_fc/tfc_sess.c b/drivers/target/tcm_fc/tfc_sess.c index 6659dd36e80..113f33598b9 100644 --- a/drivers/target/tcm_fc/tfc_sess.c +++ b/drivers/target/tcm_fc/tfc_sess.c @@ -169,7 +169,6 @@ static struct ft_sess *ft_sess_get(struct fc_lport *lport, u32 port_id)  {  	struct ft_tport *tport;  	struct hlist_head *head; -	struct hlist_node *pos;  	struct ft_sess *sess;  	rcu_read_lock(); @@ -178,7 +177,7 @@ static struct ft_sess *ft_sess_get(struct fc_lport *lport, u32 port_id)  		goto out;  	head = &tport->hash[ft_sess_hash(port_id)]; -	hlist_for_each_entry_rcu(sess, pos, head, hash) { +	hlist_for_each_entry_rcu(sess, head, hash) {  		if (sess->port_id == port_id) {  			kref_get(&sess->kref);  			rcu_read_unlock(); @@ -201,10 +200,9 @@ static struct ft_sess *ft_sess_create(struct ft_tport *tport, u32 port_id,  {  	struct ft_sess *sess;  	struct hlist_head *head; -	struct hlist_node *pos;  	head = &tport->hash[ft_sess_hash(port_id)]; -	hlist_for_each_entry_rcu(sess, pos, head, hash) +	hlist_for_each_entry_rcu(sess, head, hash)  		if (sess->port_id == port_id)  			return sess; @@ -253,11 +251,10 @@ static void ft_sess_unhash(struct ft_sess *sess)  static struct ft_sess *ft_sess_delete(struct ft_tport *tport, u32 port_id)  {  	struct hlist_head *head; -	struct hlist_node *pos;  	struct ft_sess *sess;  	head = &tport->hash[ft_sess_hash(port_id)]; -	hlist_for_each_entry_rcu(sess, pos, head, hash) { +	hlist_for_each_entry_rcu(sess, head, hash) {  		if (sess->port_id == port_id) {  			ft_sess_unhash(sess);  			return sess; @@ -273,12 +270,11 @@ static struct ft_sess *ft_sess_delete(struct ft_tport *tport, u32 port_id)  static void ft_sess_delete_all(struct ft_tport *tport)  {  	struct hlist_head *head; -	struct hlist_node *pos;  	struct ft_sess *sess;  	for (head = tport->hash;  	     head < &tport->hash[FT_SESS_HASH_SIZE]; head++) { -		hlist_for_each_entry_rcu(sess, pos, head, hash) { +		hlist_for_each_entry_rcu(sess, head, hash) {  			ft_sess_unhash(sess);  			transport_deregister_session_configfs(sess->se_sess);  			ft_sess_put(sess);	/* release from table */  |