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 b22d71cac54c..0e3f8f9dcd29 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) | |||
157 | { | 157 | { |
158 | struct atm_cirange ci; | 158 | struct atm_cirange ci; |
159 | struct atm_vcc *vcc; | 159 | struct atm_vcc *vcc; |
160 | struct hlist_node *node; | ||
161 | struct sock *s; | 160 | struct sock *s; |
162 | int i; | 161 | int i; |
163 | 162 | ||
@@ -171,7 +170,7 @@ static int atmtcp_v_ioctl(struct atm_dev *dev,unsigned int cmd,void __user *arg) | |||
171 | for(i = 0; i < VCC_HTABLE_SIZE; ++i) { | 170 | for(i = 0; i < VCC_HTABLE_SIZE; ++i) { |
172 | struct hlist_head *head = &vcc_hash[i]; | 171 | struct hlist_head *head = &vcc_hash[i]; |
173 | 172 | ||
174 | sk_for_each(s, node, head) { | 173 | sk_for_each(s, head) { |
175 | vcc = atm_sk(s); | 174 | vcc = atm_sk(s); |
176 | if (vcc->dev != dev) | 175 | if (vcc->dev != dev) |
177 | continue; | 176 | continue; |
@@ -264,12 +263,11 @@ static struct atm_vcc *find_vcc(struct atm_dev *dev, short vpi, int vci) | |||
264 | { | 263 | { |
265 | struct hlist_head *head; | 264 | struct hlist_head *head; |
266 | struct atm_vcc *vcc; | 265 | struct atm_vcc *vcc; |
267 | struct hlist_node *node; | ||
268 | struct sock *s; | 266 | struct sock *s; |
269 | 267 | ||
270 | head = &vcc_hash[vci & (VCC_HTABLE_SIZE -1)]; | 268 | head = &vcc_hash[vci & (VCC_HTABLE_SIZE -1)]; |
271 | 269 | ||
272 | sk_for_each(s, node, head) { | 270 | sk_for_each(s, head) { |
273 | vcc = atm_sk(s); | 271 | vcc = atm_sk(s); |
274 | if (vcc->dev == dev && | 272 | if (vcc->dev == dev && |
275 | vcc->vci == vci && vcc->vpi == vpi && | 273 | vcc->vci == vci && vcc->vpi == vpi && |
diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c index c1eb6fa8ac35..b1955ba40d63 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) | |||
2093 | 2093 | ||
2094 | static int eni_proc_read(struct atm_dev *dev,loff_t *pos,char *page) | 2094 | static int eni_proc_read(struct atm_dev *dev,loff_t *pos,char *page) |
2095 | { | 2095 | { |
2096 | struct hlist_node *node; | ||
2097 | struct sock *s; | 2096 | struct sock *s; |
2098 | static const char *signal[] = { "LOST","unknown","okay" }; | 2097 | static const char *signal[] = { "LOST","unknown","okay" }; |
2099 | struct eni_dev *eni_dev = ENI_DEV(dev); | 2098 | 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) | |||
2171 | for(i = 0; i < VCC_HTABLE_SIZE; ++i) { | 2170 | for(i = 0; i < VCC_HTABLE_SIZE; ++i) { |
2172 | struct hlist_head *head = &vcc_hash[i]; | 2171 | struct hlist_head *head = &vcc_hash[i]; |
2173 | 2172 | ||
2174 | sk_for_each(s, node, head) { | 2173 | sk_for_each(s, head) { |
2175 | struct eni_vcc *eni_vcc; | 2174 | struct eni_vcc *eni_vcc; |
2176 | int length; | 2175 | int length; |
2177 | 2176 | ||
diff --git a/drivers/atm/he.c b/drivers/atm/he.c index 72b6960fa95f..d6891267f5bb 100644 --- a/drivers/atm/he.c +++ b/drivers/atm/he.c | |||
@@ -329,7 +329,6 @@ __find_vcc(struct he_dev *he_dev, unsigned cid) | |||
329 | { | 329 | { |
330 | struct hlist_head *head; | 330 | struct hlist_head *head; |
331 | struct atm_vcc *vcc; | 331 | struct atm_vcc *vcc; |
332 | struct hlist_node *node; | ||
333 | struct sock *s; | 332 | struct sock *s; |
334 | short vpi; | 333 | short vpi; |
335 | int vci; | 334 | int vci; |
@@ -338,7 +337,7 @@ __find_vcc(struct he_dev *he_dev, unsigned cid) | |||
338 | vci = cid & ((1 << he_dev->vcibits) - 1); | 337 | vci = cid & ((1 << he_dev->vcibits) - 1); |
339 | head = &vcc_hash[vci & (VCC_HTABLE_SIZE -1)]; | 338 | head = &vcc_hash[vci & (VCC_HTABLE_SIZE -1)]; |
340 | 339 | ||
341 | sk_for_each(s, node, head) { | 340 | sk_for_each(s, head) { |
342 | vcc = atm_sk(s); | 341 | vcc = atm_sk(s); |
343 | if (vcc->dev == he_dev->atm_dev && | 342 | if (vcc->dev == he_dev->atm_dev && |
344 | vcc->vci == vci && vcc->vpi == vpi && | 343 | vcc->vci == vci && vcc->vpi == vpi && |
diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c index 0474a89170b9..32784d18d1f7 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) | |||
896 | { | 896 | { |
897 | struct hlist_head *head; | 897 | struct hlist_head *head; |
898 | struct atm_vcc *vcc = NULL; | 898 | struct atm_vcc *vcc = NULL; |
899 | struct hlist_node *node; | ||
900 | struct sock *s; | 899 | struct sock *s; |
901 | 900 | ||
902 | read_lock(&vcc_sklist_lock); | 901 | read_lock(&vcc_sklist_lock); |
903 | head = &vcc_hash[vci & (VCC_HTABLE_SIZE -1)]; | 902 | head = &vcc_hash[vci & (VCC_HTABLE_SIZE -1)]; |
904 | sk_for_each(s, node, head) { | 903 | sk_for_each(s, head) { |
905 | vcc = atm_sk(s); | 904 | vcc = atm_sk(s); |
906 | if (vcc->dev == dev && vcc->vci == vci && | 905 | if (vcc->dev == dev && vcc->vci == vci && |
907 | vcc->vpi == vpi && vcc->qos.rxtp.traffic_class != ATM_NONE && | 906 | vcc->vpi == vpi && vcc->qos.rxtp.traffic_class != ATM_NONE && |
diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index fabbfe1a9253..ed87b2405806 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, | |||
52 | int level) | 52 | int level) |
53 | { | 53 | { |
54 | struct clk *child; | 54 | struct clk *child; |
55 | struct hlist_node *tmp; | ||
56 | 55 | ||
57 | if (!c) | 56 | if (!c) |
58 | return; | 57 | return; |
59 | 58 | ||
60 | clk_summary_show_one(s, c, level); | 59 | clk_summary_show_one(s, c, level); |
61 | 60 | ||
62 | hlist_for_each_entry(child, tmp, &c->children, child_node) | 61 | hlist_for_each_entry(child, &c->children, child_node) |
63 | clk_summary_show_subtree(s, child, level + 1); | 62 | clk_summary_show_subtree(s, child, level + 1); |
64 | } | 63 | } |
65 | 64 | ||
66 | static int clk_summary_show(struct seq_file *s, void *data) | 65 | static int clk_summary_show(struct seq_file *s, void *data) |
67 | { | 66 | { |
68 | struct clk *c; | 67 | struct clk *c; |
69 | struct hlist_node *tmp; | ||
70 | 68 | ||
71 | seq_printf(s, " clock enable_cnt prepare_cnt rate\n"); | 69 | seq_printf(s, " clock enable_cnt prepare_cnt rate\n"); |
72 | seq_printf(s, "---------------------------------------------------------------------\n"); | 70 | seq_printf(s, "---------------------------------------------------------------------\n"); |
73 | 71 | ||
74 | mutex_lock(&prepare_lock); | 72 | mutex_lock(&prepare_lock); |
75 | 73 | ||
76 | hlist_for_each_entry(c, tmp, &clk_root_list, child_node) | 74 | hlist_for_each_entry(c, &clk_root_list, child_node) |
77 | clk_summary_show_subtree(s, c, 0); | 75 | clk_summary_show_subtree(s, c, 0); |
78 | 76 | ||
79 | hlist_for_each_entry(c, tmp, &clk_orphan_list, child_node) | 77 | hlist_for_each_entry(c, &clk_orphan_list, child_node) |
80 | clk_summary_show_subtree(s, c, 0); | 78 | clk_summary_show_subtree(s, c, 0); |
81 | 79 | ||
82 | mutex_unlock(&prepare_lock); | 80 | mutex_unlock(&prepare_lock); |
@@ -111,14 +109,13 @@ static void clk_dump_one(struct seq_file *s, struct clk *c, int level) | |||
111 | static void clk_dump_subtree(struct seq_file *s, struct clk *c, int level) | 109 | static void clk_dump_subtree(struct seq_file *s, struct clk *c, int level) |
112 | { | 110 | { |
113 | struct clk *child; | 111 | struct clk *child; |
114 | struct hlist_node *tmp; | ||
115 | 112 | ||
116 | if (!c) | 113 | if (!c) |
117 | return; | 114 | return; |
118 | 115 | ||
119 | clk_dump_one(s, c, level); | 116 | clk_dump_one(s, c, level); |
120 | 117 | ||
121 | hlist_for_each_entry(child, tmp, &c->children, child_node) { | 118 | hlist_for_each_entry(child, &c->children, child_node) { |
122 | seq_printf(s, ","); | 119 | seq_printf(s, ","); |
123 | clk_dump_subtree(s, child, level + 1); | 120 | clk_dump_subtree(s, child, level + 1); |
124 | } | 121 | } |
@@ -129,21 +126,20 @@ static void clk_dump_subtree(struct seq_file *s, struct clk *c, int level) | |||
129 | static int clk_dump(struct seq_file *s, void *data) | 126 | static int clk_dump(struct seq_file *s, void *data) |
130 | { | 127 | { |
131 | struct clk *c; | 128 | struct clk *c; |
132 | struct hlist_node *tmp; | ||
133 | bool first_node = true; | 129 | bool first_node = true; |
134 | 130 | ||
135 | seq_printf(s, "{"); | 131 | seq_printf(s, "{"); |
136 | 132 | ||
137 | mutex_lock(&prepare_lock); | 133 | mutex_lock(&prepare_lock); |
138 | 134 | ||
139 | hlist_for_each_entry(c, tmp, &clk_root_list, child_node) { | 135 | hlist_for_each_entry(c, &clk_root_list, child_node) { |
140 | if (!first_node) | 136 | if (!first_node) |
141 | seq_printf(s, ","); | 137 | seq_printf(s, ","); |
142 | first_node = false; | 138 | first_node = false; |
143 | clk_dump_subtree(s, c, 0); | 139 | clk_dump_subtree(s, c, 0); |
144 | } | 140 | } |
145 | 141 | ||
146 | hlist_for_each_entry(c, tmp, &clk_orphan_list, child_node) { | 142 | hlist_for_each_entry(c, &clk_orphan_list, child_node) { |
147 | seq_printf(s, ","); | 143 | seq_printf(s, ","); |
148 | clk_dump_subtree(s, c, 0); | 144 | clk_dump_subtree(s, c, 0); |
149 | } | 145 | } |
@@ -222,7 +218,6 @@ out: | |||
222 | static int clk_debug_create_subtree(struct clk *clk, struct dentry *pdentry) | 218 | static int clk_debug_create_subtree(struct clk *clk, struct dentry *pdentry) |
223 | { | 219 | { |
224 | struct clk *child; | 220 | struct clk *child; |
225 | struct hlist_node *tmp; | ||
226 | int ret = -EINVAL;; | 221 | int ret = -EINVAL;; |
227 | 222 | ||
228 | if (!clk || !pdentry) | 223 | if (!clk || !pdentry) |
@@ -233,7 +228,7 @@ static int clk_debug_create_subtree(struct clk *clk, struct dentry *pdentry) | |||
233 | if (ret) | 228 | if (ret) |
234 | goto out; | 229 | goto out; |
235 | 230 | ||
236 | hlist_for_each_entry(child, tmp, &clk->children, child_node) | 231 | hlist_for_each_entry(child, &clk->children, child_node) |
237 | clk_debug_create_subtree(child, clk->dentry); | 232 | clk_debug_create_subtree(child, clk->dentry); |
238 | 233 | ||
239 | ret = 0; | 234 | ret = 0; |
@@ -299,7 +294,6 @@ out: | |||
299 | static int __init clk_debug_init(void) | 294 | static int __init clk_debug_init(void) |
300 | { | 295 | { |
301 | struct clk *clk; | 296 | struct clk *clk; |
302 | struct hlist_node *tmp; | ||
303 | struct dentry *d; | 297 | struct dentry *d; |
304 | 298 | ||
305 | rootdir = debugfs_create_dir("clk", NULL); | 299 | rootdir = debugfs_create_dir("clk", NULL); |
@@ -324,10 +318,10 @@ static int __init clk_debug_init(void) | |||
324 | 318 | ||
325 | mutex_lock(&prepare_lock); | 319 | mutex_lock(&prepare_lock); |
326 | 320 | ||
327 | hlist_for_each_entry(clk, tmp, &clk_root_list, child_node) | 321 | hlist_for_each_entry(clk, &clk_root_list, child_node) |
328 | clk_debug_create_subtree(clk, rootdir); | 322 | clk_debug_create_subtree(clk, rootdir); |
329 | 323 | ||
330 | hlist_for_each_entry(clk, tmp, &clk_orphan_list, child_node) | 324 | hlist_for_each_entry(clk, &clk_orphan_list, child_node) |
331 | clk_debug_create_subtree(clk, orphandir); | 325 | clk_debug_create_subtree(clk, orphandir); |
332 | 326 | ||
333 | inited = 1; | 327 | inited = 1; |
@@ -345,13 +339,12 @@ static inline int clk_debug_register(struct clk *clk) { return 0; } | |||
345 | static void clk_disable_unused_subtree(struct clk *clk) | 339 | static void clk_disable_unused_subtree(struct clk *clk) |
346 | { | 340 | { |
347 | struct clk *child; | 341 | struct clk *child; |
348 | struct hlist_node *tmp; | ||
349 | unsigned long flags; | 342 | unsigned long flags; |
350 | 343 | ||
351 | if (!clk) | 344 | if (!clk) |
352 | goto out; | 345 | goto out; |
353 | 346 | ||
354 | hlist_for_each_entry(child, tmp, &clk->children, child_node) | 347 | hlist_for_each_entry(child, &clk->children, child_node) |
355 | clk_disable_unused_subtree(child); | 348 | clk_disable_unused_subtree(child); |
356 | 349 | ||
357 | spin_lock_irqsave(&enable_lock, flags); | 350 | spin_lock_irqsave(&enable_lock, flags); |
@@ -384,14 +377,13 @@ out: | |||
384 | static int clk_disable_unused(void) | 377 | static int clk_disable_unused(void) |
385 | { | 378 | { |
386 | struct clk *clk; | 379 | struct clk *clk; |
387 | struct hlist_node *tmp; | ||
388 | 380 | ||
389 | mutex_lock(&prepare_lock); | 381 | mutex_lock(&prepare_lock); |
390 | 382 | ||
391 | hlist_for_each_entry(clk, tmp, &clk_root_list, child_node) | 383 | hlist_for_each_entry(clk, &clk_root_list, child_node) |
392 | clk_disable_unused_subtree(clk); | 384 | clk_disable_unused_subtree(clk); |
393 | 385 | ||
394 | hlist_for_each_entry(clk, tmp, &clk_orphan_list, child_node) | 386 | hlist_for_each_entry(clk, &clk_orphan_list, child_node) |
395 | clk_disable_unused_subtree(clk); | 387 | clk_disable_unused_subtree(clk); |
396 | 388 | ||
397 | mutex_unlock(&prepare_lock); | 389 | mutex_unlock(&prepare_lock); |
@@ -484,12 +476,11 @@ static struct clk *__clk_lookup_subtree(const char *name, struct clk *clk) | |||
484 | { | 476 | { |
485 | struct clk *child; | 477 | struct clk *child; |
486 | struct clk *ret; | 478 | struct clk *ret; |
487 | struct hlist_node *tmp; | ||
488 | 479 | ||
489 | if (!strcmp(clk->name, name)) | 480 | if (!strcmp(clk->name, name)) |
490 | return clk; | 481 | return clk; |
491 | 482 | ||
492 | hlist_for_each_entry(child, tmp, &clk->children, child_node) { | 483 | hlist_for_each_entry(child, &clk->children, child_node) { |
493 | ret = __clk_lookup_subtree(name, child); | 484 | ret = __clk_lookup_subtree(name, child); |
494 | if (ret) | 485 | if (ret) |
495 | return ret; | 486 | return ret; |
@@ -502,20 +493,19 @@ struct clk *__clk_lookup(const char *name) | |||
502 | { | 493 | { |
503 | struct clk *root_clk; | 494 | struct clk *root_clk; |
504 | struct clk *ret; | 495 | struct clk *ret; |
505 | struct hlist_node *tmp; | ||
506 | 496 | ||
507 | if (!name) | 497 | if (!name) |
508 | return NULL; | 498 | return NULL; |
509 | 499 | ||
510 | /* search the 'proper' clk tree first */ | 500 | /* search the 'proper' clk tree first */ |
511 | hlist_for_each_entry(root_clk, tmp, &clk_root_list, child_node) { | 501 | hlist_for_each_entry(root_clk, &clk_root_list, child_node) { |
512 | ret = __clk_lookup_subtree(name, root_clk); | 502 | ret = __clk_lookup_subtree(name, root_clk); |
513 | if (ret) | 503 | if (ret) |
514 | return ret; | 504 | return ret; |
515 | } | 505 | } |
516 | 506 | ||
517 | /* if not found, then search the orphan tree */ | 507 | /* if not found, then search the orphan tree */ |
518 | hlist_for_each_entry(root_clk, tmp, &clk_orphan_list, child_node) { | 508 | hlist_for_each_entry(root_clk, &clk_orphan_list, child_node) { |
519 | ret = __clk_lookup_subtree(name, root_clk); | 509 | ret = __clk_lookup_subtree(name, root_clk); |
520 | if (ret) | 510 | if (ret) |
521 | return ret; | 511 | return ret; |
@@ -812,7 +802,6 @@ static void __clk_recalc_rates(struct clk *clk, unsigned long msg) | |||
812 | { | 802 | { |
813 | unsigned long old_rate; | 803 | unsigned long old_rate; |
814 | unsigned long parent_rate = 0; | 804 | unsigned long parent_rate = 0; |
815 | struct hlist_node *tmp; | ||
816 | struct clk *child; | 805 | struct clk *child; |
817 | 806 | ||
818 | old_rate = clk->rate; | 807 | old_rate = clk->rate; |
@@ -832,7 +821,7 @@ static void __clk_recalc_rates(struct clk *clk, unsigned long msg) | |||
832 | if (clk->notifier_count && msg) | 821 | if (clk->notifier_count && msg) |
833 | __clk_notify(clk, msg, old_rate, clk->rate); | 822 | __clk_notify(clk, msg, old_rate, clk->rate); |
834 | 823 | ||
835 | hlist_for_each_entry(child, tmp, &clk->children, child_node) | 824 | hlist_for_each_entry(child, &clk->children, child_node) |
836 | __clk_recalc_rates(child, msg); | 825 | __clk_recalc_rates(child, msg); |
837 | } | 826 | } |
838 | 827 | ||
@@ -878,7 +867,6 @@ EXPORT_SYMBOL_GPL(clk_get_rate); | |||
878 | */ | 867 | */ |
879 | static int __clk_speculate_rates(struct clk *clk, unsigned long parent_rate) | 868 | static int __clk_speculate_rates(struct clk *clk, unsigned long parent_rate) |
880 | { | 869 | { |
881 | struct hlist_node *tmp; | ||
882 | struct clk *child; | 870 | struct clk *child; |
883 | unsigned long new_rate; | 871 | unsigned long new_rate; |
884 | int ret = NOTIFY_DONE; | 872 | int ret = NOTIFY_DONE; |
@@ -895,7 +883,7 @@ static int __clk_speculate_rates(struct clk *clk, unsigned long parent_rate) | |||
895 | if (ret == NOTIFY_BAD) | 883 | if (ret == NOTIFY_BAD) |
896 | goto out; | 884 | goto out; |
897 | 885 | ||
898 | hlist_for_each_entry(child, tmp, &clk->children, child_node) { | 886 | hlist_for_each_entry(child, &clk->children, child_node) { |
899 | ret = __clk_speculate_rates(child, new_rate); | 887 | ret = __clk_speculate_rates(child, new_rate); |
900 | if (ret == NOTIFY_BAD) | 888 | if (ret == NOTIFY_BAD) |
901 | break; | 889 | break; |
@@ -908,11 +896,10 @@ out: | |||
908 | static void clk_calc_subtree(struct clk *clk, unsigned long new_rate) | 896 | static void clk_calc_subtree(struct clk *clk, unsigned long new_rate) |
909 | { | 897 | { |
910 | struct clk *child; | 898 | struct clk *child; |
911 | struct hlist_node *tmp; | ||
912 | 899 | ||
913 | clk->new_rate = new_rate; | 900 | clk->new_rate = new_rate; |
914 | 901 | ||
915 | hlist_for_each_entry(child, tmp, &clk->children, child_node) { | 902 | hlist_for_each_entry(child, &clk->children, child_node) { |
916 | if (child->ops->recalc_rate) | 903 | if (child->ops->recalc_rate) |
917 | child->new_rate = child->ops->recalc_rate(child->hw, new_rate); | 904 | child->new_rate = child->ops->recalc_rate(child->hw, new_rate); |
918 | else | 905 | else |
@@ -983,7 +970,6 @@ out: | |||
983 | */ | 970 | */ |
984 | static struct clk *clk_propagate_rate_change(struct clk *clk, unsigned long event) | 971 | static struct clk *clk_propagate_rate_change(struct clk *clk, unsigned long event) |
985 | { | 972 | { |
986 | struct hlist_node *tmp; | ||
987 | struct clk *child, *fail_clk = NULL; | 973 | struct clk *child, *fail_clk = NULL; |
988 | int ret = NOTIFY_DONE; | 974 | int ret = NOTIFY_DONE; |
989 | 975 | ||
@@ -996,7 +982,7 @@ static struct clk *clk_propagate_rate_change(struct clk *clk, unsigned long even | |||
996 | fail_clk = clk; | 982 | fail_clk = clk; |
997 | } | 983 | } |
998 | 984 | ||
999 | hlist_for_each_entry(child, tmp, &clk->children, child_node) { | 985 | hlist_for_each_entry(child, &clk->children, child_node) { |
1000 | clk = clk_propagate_rate_change(child, event); | 986 | clk = clk_propagate_rate_change(child, event); |
1001 | if (clk) | 987 | if (clk) |
1002 | fail_clk = clk; | 988 | fail_clk = clk; |
@@ -1014,7 +1000,6 @@ static void clk_change_rate(struct clk *clk) | |||
1014 | struct clk *child; | 1000 | struct clk *child; |
1015 | unsigned long old_rate; | 1001 | unsigned long old_rate; |
1016 | unsigned long best_parent_rate = 0; | 1002 | unsigned long best_parent_rate = 0; |
1017 | struct hlist_node *tmp; | ||
1018 | 1003 | ||
1019 | old_rate = clk->rate; | 1004 | old_rate = clk->rate; |
1020 | 1005 | ||
@@ -1032,7 +1017,7 @@ static void clk_change_rate(struct clk *clk) | |||
1032 | if (clk->notifier_count && old_rate != clk->rate) | 1017 | if (clk->notifier_count && old_rate != clk->rate) |
1033 | __clk_notify(clk, POST_RATE_CHANGE, old_rate, clk->rate); | 1018 | __clk_notify(clk, POST_RATE_CHANGE, old_rate, clk->rate); |
1034 | 1019 | ||
1035 | hlist_for_each_entry(child, tmp, &clk->children, child_node) | 1020 | hlist_for_each_entry(child, &clk->children, child_node) |
1036 | clk_change_rate(child); | 1021 | clk_change_rate(child); |
1037 | } | 1022 | } |
1038 | 1023 | ||
@@ -1348,7 +1333,7 @@ int __clk_init(struct device *dev, struct clk *clk) | |||
1348 | { | 1333 | { |
1349 | int i, ret = 0; | 1334 | int i, ret = 0; |
1350 | struct clk *orphan; | 1335 | struct clk *orphan; |
1351 | struct hlist_node *tmp, *tmp2; | 1336 | struct hlist_node *tmp2; |
1352 | 1337 | ||
1353 | if (!clk) | 1338 | if (!clk) |
1354 | return -EINVAL; | 1339 | return -EINVAL; |
@@ -1448,7 +1433,7 @@ int __clk_init(struct device *dev, struct clk *clk) | |||
1448 | * walk the list of orphan clocks and reparent any that are children of | 1433 | * walk the list of orphan clocks and reparent any that are children of |
1449 | * this clock | 1434 | * this clock |
1450 | */ | 1435 | */ |
1451 | hlist_for_each_entry_safe(orphan, tmp, tmp2, &clk_orphan_list, child_node) { | 1436 | hlist_for_each_entry_safe(orphan, tmp2, &clk_orphan_list, child_node) { |
1452 | if (orphan->ops->get_parent) { | 1437 | if (orphan->ops->get_parent) { |
1453 | i = orphan->ops->get_parent(orphan->hw); | 1438 | i = orphan->ops->get_parent(orphan->hw); |
1454 | if (!strcmp(clk->name, orphan->parent_names[i])) | 1439 | 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 80254547a3f8..7e4bae760e27 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) | |||
60 | { | 60 | { |
61 | struct drm_hash_item *entry; | 61 | struct drm_hash_item *entry; |
62 | struct hlist_head *h_list; | 62 | struct hlist_head *h_list; |
63 | struct hlist_node *list; | ||
64 | unsigned int hashed_key; | 63 | unsigned int hashed_key; |
65 | int count = 0; | 64 | int count = 0; |
66 | 65 | ||
67 | hashed_key = hash_long(key, ht->order); | 66 | hashed_key = hash_long(key, ht->order); |
68 | DRM_DEBUG("Key is 0x%08lx, Hashed key is 0x%08x\n", key, hashed_key); | 67 | DRM_DEBUG("Key is 0x%08lx, Hashed key is 0x%08x\n", key, hashed_key); |
69 | h_list = &ht->table[hashed_key]; | 68 | h_list = &ht->table[hashed_key]; |
70 | hlist_for_each_entry(entry, list, h_list, head) | 69 | hlist_for_each_entry(entry, h_list, head) |
71 | DRM_DEBUG("count %d, key: 0x%08lx\n", count++, entry->key); | 70 | DRM_DEBUG("count %d, key: 0x%08lx\n", count++, entry->key); |
72 | } | 71 | } |
73 | 72 | ||
@@ -76,14 +75,13 @@ static struct hlist_node *drm_ht_find_key(struct drm_open_hash *ht, | |||
76 | { | 75 | { |
77 | struct drm_hash_item *entry; | 76 | struct drm_hash_item *entry; |
78 | struct hlist_head *h_list; | 77 | struct hlist_head *h_list; |
79 | struct hlist_node *list; | ||
80 | unsigned int hashed_key; | 78 | unsigned int hashed_key; |
81 | 79 | ||
82 | hashed_key = hash_long(key, ht->order); | 80 | hashed_key = hash_long(key, ht->order); |
83 | h_list = &ht->table[hashed_key]; | 81 | h_list = &ht->table[hashed_key]; |
84 | hlist_for_each_entry(entry, list, h_list, head) { | 82 | hlist_for_each_entry(entry, h_list, head) { |
85 | if (entry->key == key) | 83 | if (entry->key == key) |
86 | return list; | 84 | return &entry->head; |
87 | if (entry->key > key) | 85 | if (entry->key > key) |
88 | break; | 86 | break; |
89 | } | 87 | } |
@@ -95,14 +93,13 @@ static struct hlist_node *drm_ht_find_key_rcu(struct drm_open_hash *ht, | |||
95 | { | 93 | { |
96 | struct drm_hash_item *entry; | 94 | struct drm_hash_item *entry; |
97 | struct hlist_head *h_list; | 95 | struct hlist_head *h_list; |
98 | struct hlist_node *list; | ||
99 | unsigned int hashed_key; | 96 | unsigned int hashed_key; |
100 | 97 | ||
101 | hashed_key = hash_long(key, ht->order); | 98 | hashed_key = hash_long(key, ht->order); |
102 | h_list = &ht->table[hashed_key]; | 99 | h_list = &ht->table[hashed_key]; |
103 | hlist_for_each_entry_rcu(entry, list, h_list, head) { | 100 | hlist_for_each_entry_rcu(entry, h_list, head) { |
104 | if (entry->key == key) | 101 | if (entry->key == key) |
105 | return list; | 102 | return &entry->head; |
106 | if (entry->key > key) | 103 | if (entry->key > key) |
107 | break; | 104 | break; |
108 | } | 105 | } |
@@ -113,19 +110,19 @@ int drm_ht_insert_item(struct drm_open_hash *ht, struct drm_hash_item *item) | |||
113 | { | 110 | { |
114 | struct drm_hash_item *entry; | 111 | struct drm_hash_item *entry; |
115 | struct hlist_head *h_list; | 112 | struct hlist_head *h_list; |
116 | struct hlist_node *list, *parent; | 113 | struct hlist_node *parent; |
117 | unsigned int hashed_key; | 114 | unsigned int hashed_key; |
118 | unsigned long key = item->key; | 115 | unsigned long key = item->key; |
119 | 116 | ||
120 | hashed_key = hash_long(key, ht->order); | 117 | hashed_key = hash_long(key, ht->order); |
121 | h_list = &ht->table[hashed_key]; | 118 | h_list = &ht->table[hashed_key]; |
122 | parent = NULL; | 119 | parent = NULL; |
123 | hlist_for_each_entry(entry, list, h_list, head) { | 120 | hlist_for_each_entry(entry, h_list, head) { |
124 | if (entry->key == key) | 121 | if (entry->key == key) |
125 | return -EINVAL; | 122 | return -EINVAL; |
126 | if (entry->key > key) | 123 | if (entry->key > key) |
127 | break; | 124 | break; |
128 | parent = list; | 125 | parent = &entry->head; |
129 | } | 126 | } |
130 | if (parent) { | 127 | if (parent) { |
131 | hlist_add_after_rcu(parent, &item->head); | 128 | hlist_add_after_rcu(parent, &item->head); |
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index c32eeaa3f3b1..71c2c7116802 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, | |||
2204 | { | 2204 | { |
2205 | struct rdma_id_private *cur_id; | 2205 | struct rdma_id_private *cur_id; |
2206 | struct sockaddr *addr, *cur_addr; | 2206 | struct sockaddr *addr, *cur_addr; |
2207 | struct hlist_node *node; | ||
2208 | 2207 | ||
2209 | addr = (struct sockaddr *) &id_priv->id.route.addr.src_addr; | 2208 | addr = (struct sockaddr *) &id_priv->id.route.addr.src_addr; |
2210 | hlist_for_each_entry(cur_id, node, &bind_list->owners, node) { | 2209 | hlist_for_each_entry(cur_id, &bind_list->owners, node) { |
2211 | if (id_priv == cur_id) | 2210 | if (id_priv == cur_id) |
2212 | continue; | 2211 | continue; |
2213 | 2212 | ||
diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c index 176c8f90f2bb..9f5ad7cc33c8 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, | |||
118 | { | 118 | { |
119 | struct hlist_head *bucket; | 119 | struct hlist_head *bucket; |
120 | struct ib_pool_fmr *fmr; | 120 | struct ib_pool_fmr *fmr; |
121 | struct hlist_node *pos; | ||
122 | 121 | ||
123 | if (!pool->cache_bucket) | 122 | if (!pool->cache_bucket) |
124 | return NULL; | 123 | return NULL; |
125 | 124 | ||
126 | bucket = pool->cache_bucket + ib_fmr_hash(*page_list); | 125 | bucket = pool->cache_bucket + ib_fmr_hash(*page_list); |
127 | 126 | ||
128 | hlist_for_each_entry(fmr, pos, bucket, cache_node) | 127 | hlist_for_each_entry(fmr, bucket, cache_node) |
129 | if (io_virtual_address == fmr->io_virtual_address && | 128 | if (io_virtual_address == fmr->io_virtual_address && |
130 | page_list_len == fmr->page_list_len && | 129 | page_list_len == fmr->page_list_len && |
131 | !memcmp(page_list, fmr->page_list, | 130 | !memcmp(page_list, fmr->page_list, |
diff --git a/drivers/isdn/mISDN/socket.c b/drivers/isdn/mISDN/socket.c index abe2d699b6f3..8b07f83d48ad 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) | |||
483 | { | 483 | { |
484 | struct sockaddr_mISDN *maddr = (struct sockaddr_mISDN *) addr; | 484 | struct sockaddr_mISDN *maddr = (struct sockaddr_mISDN *) addr; |
485 | struct sock *sk = sock->sk; | 485 | struct sock *sk = sock->sk; |
486 | struct hlist_node *node; | ||
487 | struct sock *csk; | 486 | struct sock *csk; |
488 | int err = 0; | 487 | int err = 0; |
489 | 488 | ||
@@ -508,7 +507,7 @@ data_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_len) | |||
508 | 507 | ||
509 | if (sk->sk_protocol < ISDN_P_B_START) { | 508 | if (sk->sk_protocol < ISDN_P_B_START) { |
510 | read_lock_bh(&data_sockets.lock); | 509 | read_lock_bh(&data_sockets.lock); |
511 | sk_for_each(csk, node, &data_sockets.head) { | 510 | sk_for_each(csk, &data_sockets.head) { |
512 | if (sk == csk) | 511 | if (sk == csk) |
513 | continue; | 512 | continue; |
514 | if (_pms(csk)->dev != _pms(sk)->dev) | 513 | if (_pms(csk)->dev != _pms(sk)->dev) |
diff --git a/drivers/isdn/mISDN/stack.c b/drivers/isdn/mISDN/stack.c index deda591f70b9..9cb4b621fbc3 100644 --- a/drivers/isdn/mISDN/stack.c +++ b/drivers/isdn/mISDN/stack.c | |||
@@ -64,12 +64,11 @@ unlock: | |||
64 | static void | 64 | static void |
65 | send_socklist(struct mISDN_sock_list *sl, struct sk_buff *skb) | 65 | send_socklist(struct mISDN_sock_list *sl, struct sk_buff *skb) |
66 | { | 66 | { |
67 | struct hlist_node *node; | ||
68 | struct sock *sk; | 67 | struct sock *sk; |
69 | struct sk_buff *cskb = NULL; | 68 | struct sk_buff *cskb = NULL; |
70 | 69 | ||
71 | read_lock(&sl->lock); | 70 | read_lock(&sl->lock); |
72 | sk_for_each(sk, node, &sl->head) { | 71 | sk_for_each(sk, &sl->head) { |
73 | if (sk->sk_state != MISDN_BOUND) | 72 | if (sk->sk_state != MISDN_BOUND) |
74 | continue; | 73 | continue; |
75 | if (!cskb) | 74 | if (!cskb) |
diff --git a/drivers/md/dm-bio-prison.c b/drivers/md/dm-bio-prison.c index aefb78e3cbf9..d9d3f1c7b662 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, | |||
106 | struct dm_cell_key *key) | 106 | struct dm_cell_key *key) |
107 | { | 107 | { |
108 | struct dm_bio_prison_cell *cell; | 108 | struct dm_bio_prison_cell *cell; |
109 | struct hlist_node *tmp; | ||
110 | 109 | ||
111 | hlist_for_each_entry(cell, tmp, bucket, list) | 110 | hlist_for_each_entry(cell, bucket, list) |
112 | if (keys_equal(&cell->key, key)) | 111 | if (keys_equal(&cell->key, key)) |
113 | return cell; | 112 | return cell; |
114 | 113 | ||
diff --git a/drivers/md/dm-bufio.c b/drivers/md/dm-bufio.c index 651ca79881dd..93205e32a004 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) | |||
859 | static struct dm_buffer *__find(struct dm_bufio_client *c, sector_t block) | 859 | static struct dm_buffer *__find(struct dm_bufio_client *c, sector_t block) |
860 | { | 860 | { |
861 | struct dm_buffer *b; | 861 | struct dm_buffer *b; |
862 | struct hlist_node *hn; | ||
863 | 862 | ||
864 | hlist_for_each_entry(b, hn, &c->cache_hash[DM_BUFIO_HASH(block)], | 863 | hlist_for_each_entry(b, &c->cache_hash[DM_BUFIO_HASH(block)], |
865 | hash_list) { | 864 | hash_list) { |
866 | dm_bufio_cond_resched(); | 865 | dm_bufio_cond_resched(); |
867 | if (b->block == block) | 866 | if (b->block == block) |
diff --git a/drivers/md/dm-snap.c b/drivers/md/dm-snap.c index 59fc18ae52c2..10079e07edf4 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) | |||
227 | static int __chunk_is_tracked(struct dm_snapshot *s, chunk_t chunk) | 227 | static int __chunk_is_tracked(struct dm_snapshot *s, chunk_t chunk) |
228 | { | 228 | { |
229 | struct dm_snap_tracked_chunk *c; | 229 | struct dm_snap_tracked_chunk *c; |
230 | struct hlist_node *hn; | ||
231 | int found = 0; | 230 | int found = 0; |
232 | 231 | ||
233 | spin_lock_irq(&s->tracked_chunk_lock); | 232 | spin_lock_irq(&s->tracked_chunk_lock); |
234 | 233 | ||
235 | hlist_for_each_entry(c, hn, | 234 | hlist_for_each_entry(c, |
236 | &s->tracked_chunk_hash[DM_TRACKED_CHUNK_HASH(chunk)], node) { | 235 | &s->tracked_chunk_hash[DM_TRACKED_CHUNK_HASH(chunk)], node) { |
237 | if (c->chunk == chunk) { | 236 | if (c->chunk == chunk) { |
238 | found = 1; | 237 | found = 1; |
diff --git a/drivers/md/persistent-data/dm-transaction-manager.c b/drivers/md/persistent-data/dm-transaction-manager.c index 7b17a1fdeaf9..81da1a26042e 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) | |||
46 | int r = 0; | 46 | int r = 0; |
47 | unsigned bucket = dm_hash_block(b, DM_HASH_MASK); | 47 | unsigned bucket = dm_hash_block(b, DM_HASH_MASK); |
48 | struct shadow_info *si; | 48 | struct shadow_info *si; |
49 | struct hlist_node *n; | ||
50 | 49 | ||
51 | spin_lock(&tm->lock); | 50 | spin_lock(&tm->lock); |
52 | hlist_for_each_entry(si, n, tm->buckets + bucket, hlist) | 51 | hlist_for_each_entry(si, tm->buckets + bucket, hlist) |
53 | if (si->where == b) { | 52 | if (si->where == b) { |
54 | r = 1; | 53 | r = 1; |
55 | break; | 54 | break; |
@@ -81,14 +80,14 @@ static void insert_shadow(struct dm_transaction_manager *tm, dm_block_t b) | |||
81 | static void wipe_shadow_table(struct dm_transaction_manager *tm) | 80 | static void wipe_shadow_table(struct dm_transaction_manager *tm) |
82 | { | 81 | { |
83 | struct shadow_info *si; | 82 | struct shadow_info *si; |
84 | struct hlist_node *n, *tmp; | 83 | struct hlist_node *tmp; |
85 | struct hlist_head *bucket; | 84 | struct hlist_head *bucket; |
86 | int i; | 85 | int i; |
87 | 86 | ||
88 | spin_lock(&tm->lock); | 87 | spin_lock(&tm->lock); |
89 | for (i = 0; i < DM_HASH_SIZE; i++) { | 88 | for (i = 0; i < DM_HASH_SIZE; i++) { |
90 | bucket = tm->buckets + i; | 89 | bucket = tm->buckets + i; |
91 | hlist_for_each_entry_safe(si, n, tmp, bucket, hlist) | 90 | hlist_for_each_entry_safe(si, tmp, bucket, hlist) |
92 | kfree(si); | 91 | kfree(si); |
93 | 92 | ||
94 | INIT_HLIST_HEAD(bucket); | 93 | INIT_HLIST_HEAD(bucket); |
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 19d77a026639..697f026cb318 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, | |||
365 | short generation) | 365 | short generation) |
366 | { | 366 | { |
367 | struct stripe_head *sh; | 367 | struct stripe_head *sh; |
368 | struct hlist_node *hn; | ||
369 | 368 | ||
370 | pr_debug("__find_stripe, sector %llu\n", (unsigned long long)sector); | 369 | pr_debug("__find_stripe, sector %llu\n", (unsigned long long)sector); |
371 | hlist_for_each_entry(sh, hn, stripe_hash(conf, sector), hash) | 370 | hlist_for_each_entry(sh, stripe_hash(conf, sector), hash) |
372 | if (sh->sector == sector && sh->generation == generation) | 371 | if (sh->sector == sector && sh->generation == generation) |
373 | return sh; | 372 | return sh; |
374 | pr_debug("__stripe %llu not in cache\n", (unsigned long long)sector); | 373 | 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 240a6d361665..2129274ef7ab 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, | |||
280 | const struct mmu_notifier_ops *ops) | 280 | const struct mmu_notifier_ops *ops) |
281 | { | 281 | { |
282 | struct mmu_notifier *mn, *gru_mn = NULL; | 282 | struct mmu_notifier *mn, *gru_mn = NULL; |
283 | struct hlist_node *n; | ||
284 | 283 | ||
285 | if (mm->mmu_notifier_mm) { | 284 | if (mm->mmu_notifier_mm) { |
286 | rcu_read_lock(); | 285 | rcu_read_lock(); |
287 | hlist_for_each_entry_rcu(mn, n, &mm->mmu_notifier_mm->list, | 286 | hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list, |
288 | hlist) | 287 | hlist) |
289 | if (mn->ops == ops) { | 288 | if (mn->ops == ops) { |
290 | gru_mn = mn; | 289 | gru_mn = mn; |
diff --git a/drivers/misc/vmw_vmci/vmci_doorbell.c b/drivers/misc/vmw_vmci/vmci_doorbell.c index c3e8397f62ed..a8cee33ae8d2 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) | |||
127 | { | 127 | { |
128 | u32 bucket = VMCI_DOORBELL_HASH(idx); | 128 | u32 bucket = VMCI_DOORBELL_HASH(idx); |
129 | struct dbell_entry *dbell; | 129 | struct dbell_entry *dbell; |
130 | struct hlist_node *node; | ||
131 | 130 | ||
132 | hlist_for_each_entry(dbell, node, &vmci_doorbell_it.entries[bucket], | 131 | hlist_for_each_entry(dbell, &vmci_doorbell_it.entries[bucket], |
133 | node) { | 132 | node) { |
134 | if (idx == dbell->idx) | 133 | if (idx == dbell->idx) |
135 | return dbell; | 134 | return dbell; |
@@ -359,12 +358,10 @@ static void dbell_fire_entries(u32 notify_idx) | |||
359 | { | 358 | { |
360 | u32 bucket = VMCI_DOORBELL_HASH(notify_idx); | 359 | u32 bucket = VMCI_DOORBELL_HASH(notify_idx); |
361 | struct dbell_entry *dbell; | 360 | struct dbell_entry *dbell; |
362 | struct hlist_node *node; | ||
363 | 361 | ||
364 | spin_lock_bh(&vmci_doorbell_it.lock); | 362 | spin_lock_bh(&vmci_doorbell_it.lock); |
365 | 363 | ||
366 | hlist_for_each_entry(dbell, node, | 364 | hlist_for_each_entry(dbell, &vmci_doorbell_it.entries[bucket], node) { |
367 | &vmci_doorbell_it.entries[bucket], node) { | ||
368 | if (dbell->idx == notify_idx && | 365 | if (dbell->idx == notify_idx && |
369 | atomic_read(&dbell->active) == 1) { | 366 | atomic_read(&dbell->active) == 1) { |
370 | if (dbell->run_delayed) { | 367 | if (dbell->run_delayed) { |
diff --git a/drivers/misc/vmw_vmci/vmci_resource.c b/drivers/misc/vmw_vmci/vmci_resource.c index a196f84a4fd2..9a53a30de445 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, | |||
46 | enum vmci_resource_type type) | 46 | enum vmci_resource_type type) |
47 | { | 47 | { |
48 | struct vmci_resource *r, *resource = NULL; | 48 | struct vmci_resource *r, *resource = NULL; |
49 | struct hlist_node *node; | ||
50 | unsigned int idx = vmci_resource_hash(handle); | 49 | unsigned int idx = vmci_resource_hash(handle); |
51 | 50 | ||
52 | rcu_read_lock(); | 51 | rcu_read_lock(); |
53 | hlist_for_each_entry_rcu(r, node, | 52 | hlist_for_each_entry_rcu(r, |
54 | &vmci_resource_table.entries[idx], node) { | 53 | &vmci_resource_table.entries[idx], node) { |
55 | u32 cid = r->handle.context; | 54 | u32 cid = r->handle.context; |
56 | u32 rid = r->handle.resource; | 55 | u32 rid = r->handle.resource; |
@@ -146,12 +145,11 @@ void vmci_resource_remove(struct vmci_resource *resource) | |||
146 | struct vmci_handle handle = resource->handle; | 145 | struct vmci_handle handle = resource->handle; |
147 | unsigned int idx = vmci_resource_hash(handle); | 146 | unsigned int idx = vmci_resource_hash(handle); |
148 | struct vmci_resource *r; | 147 | struct vmci_resource *r; |
149 | struct hlist_node *node; | ||
150 | 148 | ||
151 | /* Remove resource from hash table. */ | 149 | /* Remove resource from hash table. */ |
152 | spin_lock(&vmci_resource_table.lock); | 150 | spin_lock(&vmci_resource_table.lock); |
153 | 151 | ||
154 | hlist_for_each_entry(r, node, &vmci_resource_table.entries[idx], node) { | 152 | hlist_for_each_entry(r, &vmci_resource_table.entries[idx], node) { |
155 | if (vmci_handle_is_equal(r->handle, resource->handle)) { | 153 | if (vmci_handle_is_equal(r->handle, resource->handle)) { |
156 | hlist_del_init_rcu(&r->node); | 154 | hlist_del_init_rcu(&r->node); |
157 | break; | 155 | break; |
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.c index f4d2e9e3c6d5..c3f1afd86906 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, | |||
2197 | union ixgbe_atr_input *mask = &adapter->fdir_mask; | 2197 | union ixgbe_atr_input *mask = &adapter->fdir_mask; |
2198 | struct ethtool_rx_flow_spec *fsp = | 2198 | struct ethtool_rx_flow_spec *fsp = |
2199 | (struct ethtool_rx_flow_spec *)&cmd->fs; | 2199 | (struct ethtool_rx_flow_spec *)&cmd->fs; |
2200 | struct hlist_node *node, *node2; | 2200 | struct hlist_node *node2; |
2201 | struct ixgbe_fdir_filter *rule = NULL; | 2201 | struct ixgbe_fdir_filter *rule = NULL; |
2202 | 2202 | ||
2203 | /* report total rule count */ | 2203 | /* report total rule count */ |
2204 | cmd->data = (1024 << adapter->fdir_pballoc) - 2; | 2204 | cmd->data = (1024 << adapter->fdir_pballoc) - 2; |
2205 | 2205 | ||
2206 | hlist_for_each_entry_safe(rule, node, node2, | 2206 | hlist_for_each_entry_safe(rule, node2, |
2207 | &adapter->fdir_filter_list, fdir_node) { | 2207 | &adapter->fdir_filter_list, fdir_node) { |
2208 | if (fsp->location <= rule->sw_idx) | 2208 | if (fsp->location <= rule->sw_idx) |
2209 | break; | 2209 | break; |
@@ -2264,14 +2264,14 @@ static int ixgbe_get_ethtool_fdir_all(struct ixgbe_adapter *adapter, | |||
2264 | struct ethtool_rxnfc *cmd, | 2264 | struct ethtool_rxnfc *cmd, |
2265 | u32 *rule_locs) | 2265 | u32 *rule_locs) |
2266 | { | 2266 | { |
2267 | struct hlist_node *node, *node2; | 2267 | struct hlist_node *node2; |
2268 | struct ixgbe_fdir_filter *rule; | 2268 | struct ixgbe_fdir_filter *rule; |
2269 | int cnt = 0; | 2269 | int cnt = 0; |
2270 | 2270 | ||
2271 | /* report total rule count */ | 2271 | /* report total rule count */ |
2272 | cmd->data = (1024 << adapter->fdir_pballoc) - 2; | 2272 | cmd->data = (1024 << adapter->fdir_pballoc) - 2; |
2273 | 2273 | ||
2274 | hlist_for_each_entry_safe(rule, node, node2, | 2274 | hlist_for_each_entry_safe(rule, node2, |
2275 | &adapter->fdir_filter_list, fdir_node) { | 2275 | &adapter->fdir_filter_list, fdir_node) { |
2276 | if (cnt == cmd->rule_cnt) | 2276 | if (cnt == cmd->rule_cnt) |
2277 | return -EMSGSIZE; | 2277 | return -EMSGSIZE; |
@@ -2358,19 +2358,19 @@ static int ixgbe_update_ethtool_fdir_entry(struct ixgbe_adapter *adapter, | |||
2358 | u16 sw_idx) | 2358 | u16 sw_idx) |
2359 | { | 2359 | { |
2360 | struct ixgbe_hw *hw = &adapter->hw; | 2360 | struct ixgbe_hw *hw = &adapter->hw; |
2361 | struct hlist_node *node, *node2, *parent; | 2361 | struct hlist_node *node2; |
2362 | struct ixgbe_fdir_filter *rule; | 2362 | struct ixgbe_fdir_filter *rule, *parent; |
2363 | int err = -EINVAL; | 2363 | int err = -EINVAL; |
2364 | 2364 | ||
2365 | parent = NULL; | 2365 | parent = NULL; |
2366 | rule = NULL; | 2366 | rule = NULL; |
2367 | 2367 | ||
2368 | hlist_for_each_entry_safe(rule, node, node2, | 2368 | hlist_for_each_entry_safe(rule, node2, |
2369 | &adapter->fdir_filter_list, fdir_node) { | 2369 | &adapter->fdir_filter_list, fdir_node) { |
2370 | /* hash found, or no matching entry */ | 2370 | /* hash found, or no matching entry */ |
2371 | if (rule->sw_idx >= sw_idx) | 2371 | if (rule->sw_idx >= sw_idx) |
2372 | break; | 2372 | break; |
2373 | parent = node; | 2373 | parent = rule; |
2374 | } | 2374 | } |
2375 | 2375 | ||
2376 | /* if there is an old rule occupying our place remove it */ | 2376 | /* 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, | |||
2399 | 2399 | ||
2400 | /* add filter to the list */ | 2400 | /* add filter to the list */ |
2401 | if (parent) | 2401 | if (parent) |
2402 | hlist_add_after(parent, &input->fdir_node); | 2402 | hlist_add_after(&parent->fdir_node, &input->fdir_node); |
2403 | else | 2403 | else |
2404 | hlist_add_head(&input->fdir_node, | 2404 | hlist_add_head(&input->fdir_node, |
2405 | &adapter->fdir_filter_list); | 2405 | &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 68478d6dfa2d..db5611ae407e 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) | |||
3891 | static void ixgbe_fdir_filter_restore(struct ixgbe_adapter *adapter) | 3891 | static void ixgbe_fdir_filter_restore(struct ixgbe_adapter *adapter) |
3892 | { | 3892 | { |
3893 | struct ixgbe_hw *hw = &adapter->hw; | 3893 | struct ixgbe_hw *hw = &adapter->hw; |
3894 | struct hlist_node *node, *node2; | 3894 | struct hlist_node *node2; |
3895 | struct ixgbe_fdir_filter *filter; | 3895 | struct ixgbe_fdir_filter *filter; |
3896 | 3896 | ||
3897 | spin_lock(&adapter->fdir_perfect_lock); | 3897 | spin_lock(&adapter->fdir_perfect_lock); |
@@ -3899,7 +3899,7 @@ static void ixgbe_fdir_filter_restore(struct ixgbe_adapter *adapter) | |||
3899 | if (!hlist_empty(&adapter->fdir_filter_list)) | 3899 | if (!hlist_empty(&adapter->fdir_filter_list)) |
3900 | ixgbe_fdir_set_input_mask_82599(hw, &adapter->fdir_mask); | 3900 | ixgbe_fdir_set_input_mask_82599(hw, &adapter->fdir_mask); |
3901 | 3901 | ||
3902 | hlist_for_each_entry_safe(filter, node, node2, | 3902 | hlist_for_each_entry_safe(filter, node2, |
3903 | &adapter->fdir_filter_list, fdir_node) { | 3903 | &adapter->fdir_filter_list, fdir_node) { |
3904 | ixgbe_fdir_write_perfect_filter_82599(hw, | 3904 | ixgbe_fdir_write_perfect_filter_82599(hw, |
3905 | &filter->filter, | 3905 | &filter->filter, |
@@ -4356,12 +4356,12 @@ static void ixgbe_clean_all_tx_rings(struct ixgbe_adapter *adapter) | |||
4356 | 4356 | ||
4357 | static void ixgbe_fdir_filter_exit(struct ixgbe_adapter *adapter) | 4357 | static void ixgbe_fdir_filter_exit(struct ixgbe_adapter *adapter) |
4358 | { | 4358 | { |
4359 | struct hlist_node *node, *node2; | 4359 | struct hlist_node *node2; |
4360 | struct ixgbe_fdir_filter *filter; | 4360 | struct ixgbe_fdir_filter *filter; |
4361 | 4361 | ||
4362 | spin_lock(&adapter->fdir_perfect_lock); | 4362 | spin_lock(&adapter->fdir_perfect_lock); |
4363 | 4363 | ||
4364 | hlist_for_each_entry_safe(filter, node, node2, | 4364 | hlist_for_each_entry_safe(filter, node2, |
4365 | &adapter->fdir_filter_list, fdir_node) { | 4365 | &adapter->fdir_filter_list, fdir_node) { |
4366 | hlist_del(&filter->fdir_node); | 4366 | hlist_del(&filter->fdir_node); |
4367 | kfree(filter); | 4367 | kfree(filter); |
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_netdev.c b/drivers/net/ethernet/mellanox/mlx4/en_netdev.c index 5385474bb526..bb4d8d99f36d 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 * | |||
225 | mlx4_en_filter_find(struct mlx4_en_priv *priv, __be32 src_ip, __be32 dst_ip, | 225 | mlx4_en_filter_find(struct mlx4_en_priv *priv, __be32 src_ip, __be32 dst_ip, |
226 | __be16 src_port, __be16 dst_port) | 226 | __be16 src_port, __be16 dst_port) |
227 | { | 227 | { |
228 | struct hlist_node *elem; | ||
229 | struct mlx4_en_filter *filter; | 228 | struct mlx4_en_filter *filter; |
230 | struct mlx4_en_filter *ret = NULL; | 229 | struct mlx4_en_filter *ret = NULL; |
231 | 230 | ||
232 | hlist_for_each_entry(filter, elem, | 231 | hlist_for_each_entry(filter, |
233 | filter_hash_bucket(priv, src_ip, dst_ip, | 232 | filter_hash_bucket(priv, src_ip, dst_ip, |
234 | src_port, dst_port), | 233 | src_port, dst_port), |
235 | filter_chain) { | 234 | filter_chain) { |
@@ -574,13 +573,13 @@ static void mlx4_en_put_qp(struct mlx4_en_priv *priv) | |||
574 | 573 | ||
575 | if (dev->caps.steering_mode != MLX4_STEERING_MODE_A0) { | 574 | if (dev->caps.steering_mode != MLX4_STEERING_MODE_A0) { |
576 | struct mlx4_mac_entry *entry; | 575 | struct mlx4_mac_entry *entry; |
577 | struct hlist_node *n, *tmp; | 576 | struct hlist_node *tmp; |
578 | struct hlist_head *bucket; | 577 | struct hlist_head *bucket; |
579 | unsigned int mac_hash; | 578 | unsigned int mac_hash; |
580 | 579 | ||
581 | mac_hash = priv->dev->dev_addr[MLX4_EN_MAC_HASH_IDX]; | 580 | mac_hash = priv->dev->dev_addr[MLX4_EN_MAC_HASH_IDX]; |
582 | bucket = &priv->mac_hash[mac_hash]; | 581 | bucket = &priv->mac_hash[mac_hash]; |
583 | hlist_for_each_entry_safe(entry, n, tmp, bucket, hlist) { | 582 | hlist_for_each_entry_safe(entry, tmp, bucket, hlist) { |
584 | if (ether_addr_equal_64bits(entry->mac, | 583 | if (ether_addr_equal_64bits(entry->mac, |
585 | priv->dev->dev_addr)) { | 584 | priv->dev->dev_addr)) { |
586 | en_dbg(DRV, priv, "Releasing qp: port %d, MAC %pM, qpn %d\n", | 585 | 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, | |||
609 | struct hlist_head *bucket; | 608 | struct hlist_head *bucket; |
610 | unsigned int mac_hash; | 609 | unsigned int mac_hash; |
611 | struct mlx4_mac_entry *entry; | 610 | struct mlx4_mac_entry *entry; |
612 | struct hlist_node *n, *tmp; | 611 | struct hlist_node *tmp; |
613 | u64 prev_mac_u64 = mlx4_en_mac_to_u64(prev_mac); | 612 | u64 prev_mac_u64 = mlx4_en_mac_to_u64(prev_mac); |
614 | 613 | ||
615 | bucket = &priv->mac_hash[prev_mac[MLX4_EN_MAC_HASH_IDX]]; | 614 | bucket = &priv->mac_hash[prev_mac[MLX4_EN_MAC_HASH_IDX]]; |
616 | hlist_for_each_entry_safe(entry, n, tmp, bucket, hlist) { | 615 | hlist_for_each_entry_safe(entry, tmp, bucket, hlist) { |
617 | if (ether_addr_equal_64bits(entry->mac, prev_mac)) { | 616 | if (ether_addr_equal_64bits(entry->mac, prev_mac)) { |
618 | mlx4_en_uc_steer_release(priv, entry->mac, | 617 | mlx4_en_uc_steer_release(priv, entry->mac, |
619 | qpn, entry->reg_id); | 618 | qpn, entry->reg_id); |
@@ -1019,7 +1018,7 @@ static void mlx4_en_do_uc_filter(struct mlx4_en_priv *priv, | |||
1019 | { | 1018 | { |
1020 | struct netdev_hw_addr *ha; | 1019 | struct netdev_hw_addr *ha; |
1021 | struct mlx4_mac_entry *entry; | 1020 | struct mlx4_mac_entry *entry; |
1022 | struct hlist_node *n, *tmp; | 1021 | struct hlist_node *tmp; |
1023 | bool found; | 1022 | bool found; |
1024 | u64 mac; | 1023 | u64 mac; |
1025 | int err = 0; | 1024 | int err = 0; |
@@ -1035,7 +1034,7 @@ static void mlx4_en_do_uc_filter(struct mlx4_en_priv *priv, | |||
1035 | /* find what to remove */ | 1034 | /* find what to remove */ |
1036 | for (i = 0; i < MLX4_EN_MAC_HASH_SIZE; ++i) { | 1035 | for (i = 0; i < MLX4_EN_MAC_HASH_SIZE; ++i) { |
1037 | bucket = &priv->mac_hash[i]; | 1036 | bucket = &priv->mac_hash[i]; |
1038 | hlist_for_each_entry_safe(entry, n, tmp, bucket, hlist) { | 1037 | hlist_for_each_entry_safe(entry, tmp, bucket, hlist) { |
1039 | found = false; | 1038 | found = false; |
1040 | netdev_for_each_uc_addr(ha, dev) { | 1039 | netdev_for_each_uc_addr(ha, dev) { |
1041 | if (ether_addr_equal_64bits(entry->mac, | 1040 | if (ether_addr_equal_64bits(entry->mac, |
@@ -1078,7 +1077,7 @@ static void mlx4_en_do_uc_filter(struct mlx4_en_priv *priv, | |||
1078 | netdev_for_each_uc_addr(ha, dev) { | 1077 | netdev_for_each_uc_addr(ha, dev) { |
1079 | found = false; | 1078 | found = false; |
1080 | bucket = &priv->mac_hash[ha->addr[MLX4_EN_MAC_HASH_IDX]]; | 1079 | bucket = &priv->mac_hash[ha->addr[MLX4_EN_MAC_HASH_IDX]]; |
1081 | hlist_for_each_entry(entry, n, bucket, hlist) { | 1080 | hlist_for_each_entry(entry, bucket, hlist) { |
1082 | if (ether_addr_equal_64bits(entry->mac, ha->addr)) { | 1081 | if (ether_addr_equal_64bits(entry->mac, ha->addr)) { |
1083 | found = true; | 1082 | found = true; |
1084 | break; | 1083 | break; |
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c index ce38654bbdd0..c7f856308e1a 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <linux/slab.h> | 35 | #include <linux/slab.h> |
36 | #include <linux/mlx4/qp.h> | 36 | #include <linux/mlx4/qp.h> |
37 | #include <linux/skbuff.h> | 37 | #include <linux/skbuff.h> |
38 | #include <linux/rculist.h> | ||
38 | #include <linux/if_ether.h> | 39 | #include <linux/if_ether.h> |
39 | #include <linux/if_vlan.h> | 40 | #include <linux/if_vlan.h> |
40 | #include <linux/vmalloc.h> | 41 | #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 | |||
617 | 618 | ||
618 | if (is_multicast_ether_addr(ethh->h_dest)) { | 619 | if (is_multicast_ether_addr(ethh->h_dest)) { |
619 | struct mlx4_mac_entry *entry; | 620 | struct mlx4_mac_entry *entry; |
620 | struct hlist_node *n; | ||
621 | struct hlist_head *bucket; | 621 | struct hlist_head *bucket; |
622 | unsigned int mac_hash; | 622 | unsigned int mac_hash; |
623 | 623 | ||
@@ -625,7 +625,7 @@ int mlx4_en_process_rx_cq(struct net_device *dev, struct mlx4_en_cq *cq, int bud | |||
625 | mac_hash = ethh->h_source[MLX4_EN_MAC_HASH_IDX]; | 625 | mac_hash = ethh->h_source[MLX4_EN_MAC_HASH_IDX]; |
626 | bucket = &priv->mac_hash[mac_hash]; | 626 | bucket = &priv->mac_hash[mac_hash]; |
627 | rcu_read_lock(); | 627 | rcu_read_lock(); |
628 | hlist_for_each_entry_rcu(entry, n, bucket, hlist) { | 628 | hlist_for_each_entry_rcu(entry, bucket, hlist) { |
629 | if (ether_addr_equal_64bits(entry->mac, | 629 | if (ether_addr_equal_64bits(entry->mac, |
630 | ethh->h_source)) { | 630 | ethh->h_source)) { |
631 | rcu_read_unlock(); | 631 | rcu_read_unlock(); |
diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_hw.c index 325e11e1ce0f..f89cc7a3fe6c 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) | |||
576 | void qlcnic_prune_lb_filters(struct qlcnic_adapter *adapter) | 576 | void qlcnic_prune_lb_filters(struct qlcnic_adapter *adapter) |
577 | { | 577 | { |
578 | struct qlcnic_filter *tmp_fil; | 578 | struct qlcnic_filter *tmp_fil; |
579 | struct hlist_node *tmp_hnode, *n; | 579 | struct hlist_node *n; |
580 | struct hlist_head *head; | 580 | struct hlist_head *head; |
581 | int i; | 581 | int i; |
582 | unsigned long time; | 582 | unsigned long time; |
@@ -584,7 +584,7 @@ void qlcnic_prune_lb_filters(struct qlcnic_adapter *adapter) | |||
584 | 584 | ||
585 | for (i = 0; i < adapter->fhash.fbucket_size; i++) { | 585 | for (i = 0; i < adapter->fhash.fbucket_size; i++) { |
586 | head = &(adapter->fhash.fhead[i]); | 586 | head = &(adapter->fhash.fhead[i]); |
587 | hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) { | 587 | hlist_for_each_entry_safe(tmp_fil, n, head, fnode) { |
588 | cmd = tmp_fil->vlan_id ? QLCNIC_MAC_VLAN_DEL : | 588 | cmd = tmp_fil->vlan_id ? QLCNIC_MAC_VLAN_DEL : |
589 | QLCNIC_MAC_DEL; | 589 | QLCNIC_MAC_DEL; |
590 | time = tmp_fil->ftime; | 590 | time = tmp_fil->ftime; |
@@ -604,7 +604,7 @@ void qlcnic_prune_lb_filters(struct qlcnic_adapter *adapter) | |||
604 | for (i = 0; i < adapter->rx_fhash.fbucket_size; i++) { | 604 | for (i = 0; i < adapter->rx_fhash.fbucket_size; i++) { |
605 | head = &(adapter->rx_fhash.fhead[i]); | 605 | head = &(adapter->rx_fhash.fhead[i]); |
606 | 606 | ||
607 | hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) | 607 | hlist_for_each_entry_safe(tmp_fil, n, head, fnode) |
608 | { | 608 | { |
609 | time = tmp_fil->ftime; | 609 | time = tmp_fil->ftime; |
610 | if (jiffies > (QLCNIC_FILTER_AGE * HZ + time)) { | 610 | if (jiffies > (QLCNIC_FILTER_AGE * HZ + time)) { |
@@ -621,14 +621,14 @@ void qlcnic_prune_lb_filters(struct qlcnic_adapter *adapter) | |||
621 | void qlcnic_delete_lb_filters(struct qlcnic_adapter *adapter) | 621 | void qlcnic_delete_lb_filters(struct qlcnic_adapter *adapter) |
622 | { | 622 | { |
623 | struct qlcnic_filter *tmp_fil; | 623 | struct qlcnic_filter *tmp_fil; |
624 | struct hlist_node *tmp_hnode, *n; | 624 | struct hlist_node *n; |
625 | struct hlist_head *head; | 625 | struct hlist_head *head; |
626 | int i; | 626 | int i; |
627 | u8 cmd; | 627 | u8 cmd; |
628 | 628 | ||
629 | for (i = 0; i < adapter->fhash.fbucket_size; i++) { | 629 | for (i = 0; i < adapter->fhash.fbucket_size; i++) { |
630 | head = &(adapter->fhash.fhead[i]); | 630 | head = &(adapter->fhash.fhead[i]); |
631 | hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) { | 631 | hlist_for_each_entry_safe(tmp_fil, n, head, fnode) { |
632 | cmd = tmp_fil->vlan_id ? QLCNIC_MAC_VLAN_DEL : | 632 | cmd = tmp_fil->vlan_id ? QLCNIC_MAC_VLAN_DEL : |
633 | QLCNIC_MAC_DEL; | 633 | QLCNIC_MAC_DEL; |
634 | qlcnic_sre_macaddr_change(adapter, | 634 | 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 6387e0cc3ea9..0e630061bff3 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, | |||
162 | { | 162 | { |
163 | struct ethhdr *phdr = (struct ethhdr *)(skb->data); | 163 | struct ethhdr *phdr = (struct ethhdr *)(skb->data); |
164 | struct qlcnic_filter *fil, *tmp_fil; | 164 | struct qlcnic_filter *fil, *tmp_fil; |
165 | struct hlist_node *tmp_hnode, *n; | 165 | struct hlist_node *n; |
166 | struct hlist_head *head; | 166 | struct hlist_head *head; |
167 | unsigned long time; | 167 | unsigned long time; |
168 | u64 src_addr = 0; | 168 | u64 src_addr = 0; |
@@ -179,7 +179,7 @@ void qlcnic_add_lb_filter(struct qlcnic_adapter *adapter, struct sk_buff *skb, | |||
179 | (adapter->fhash.fbucket_size - 1); | 179 | (adapter->fhash.fbucket_size - 1); |
180 | head = &(adapter->rx_fhash.fhead[hindex]); | 180 | head = &(adapter->rx_fhash.fhead[hindex]); |
181 | 181 | ||
182 | hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) { | 182 | hlist_for_each_entry_safe(tmp_fil, n, head, fnode) { |
183 | if (!memcmp(tmp_fil->faddr, &src_addr, ETH_ALEN) && | 183 | if (!memcmp(tmp_fil->faddr, &src_addr, ETH_ALEN) && |
184 | tmp_fil->vlan_id == vlan_id) { | 184 | tmp_fil->vlan_id == vlan_id) { |
185 | time = tmp_fil->ftime; | 185 | time = tmp_fil->ftime; |
@@ -205,7 +205,7 @@ void qlcnic_add_lb_filter(struct qlcnic_adapter *adapter, struct sk_buff *skb, | |||
205 | (adapter->fhash.fbucket_size - 1); | 205 | (adapter->fhash.fbucket_size - 1); |
206 | head = &(adapter->rx_fhash.fhead[hindex]); | 206 | head = &(adapter->rx_fhash.fhead[hindex]); |
207 | spin_lock(&adapter->rx_mac_learn_lock); | 207 | spin_lock(&adapter->rx_mac_learn_lock); |
208 | hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) { | 208 | hlist_for_each_entry_safe(tmp_fil, n, head, fnode) { |
209 | if (!memcmp(tmp_fil->faddr, &src_addr, ETH_ALEN) && | 209 | if (!memcmp(tmp_fil->faddr, &src_addr, ETH_ALEN) && |
210 | tmp_fil->vlan_id == vlan_id) { | 210 | tmp_fil->vlan_id == vlan_id) { |
211 | found = 1; | 211 | found = 1; |
@@ -272,7 +272,7 @@ static void qlcnic_send_filter(struct qlcnic_adapter *adapter, | |||
272 | struct sk_buff *skb) | 272 | struct sk_buff *skb) |
273 | { | 273 | { |
274 | struct qlcnic_filter *fil, *tmp_fil; | 274 | struct qlcnic_filter *fil, *tmp_fil; |
275 | struct hlist_node *tmp_hnode, *n; | 275 | struct hlist_node *n; |
276 | struct hlist_head *head; | 276 | struct hlist_head *head; |
277 | struct net_device *netdev = adapter->netdev; | 277 | struct net_device *netdev = adapter->netdev; |
278 | struct ethhdr *phdr = (struct ethhdr *)(skb->data); | 278 | struct ethhdr *phdr = (struct ethhdr *)(skb->data); |
@@ -294,7 +294,7 @@ static void qlcnic_send_filter(struct qlcnic_adapter *adapter, | |||
294 | hindex = qlcnic_mac_hash(src_addr) & (adapter->fhash.fbucket_size - 1); | 294 | hindex = qlcnic_mac_hash(src_addr) & (adapter->fhash.fbucket_size - 1); |
295 | head = &(adapter->fhash.fhead[hindex]); | 295 | head = &(adapter->fhash.fhead[hindex]); |
296 | 296 | ||
297 | hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) { | 297 | hlist_for_each_entry_safe(tmp_fil, n, head, fnode) { |
298 | if (!memcmp(tmp_fil->faddr, &src_addr, ETH_ALEN) && | 298 | if (!memcmp(tmp_fil->faddr, &src_addr, ETH_ALEN) && |
299 | tmp_fil->vlan_id == vlan_id) { | 299 | tmp_fil->vlan_id == vlan_id) { |
300 | if (jiffies > (QLCNIC_READD_AGE * HZ + tmp_fil->ftime)) | 300 | 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 289b4eefb42f..1df0ff3839e8 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) | |||
614 | { | 614 | { |
615 | unsigned int hash = vnet_hashfn(skb->data); | 615 | unsigned int hash = vnet_hashfn(skb->data); |
616 | struct hlist_head *hp = &vp->port_hash[hash]; | 616 | struct hlist_head *hp = &vp->port_hash[hash]; |
617 | struct hlist_node *n; | ||
618 | struct vnet_port *port; | 617 | struct vnet_port *port; |
619 | 618 | ||
620 | hlist_for_each_entry(port, n, hp, hash) { | 619 | hlist_for_each_entry(port, hp, hash) { |
621 | if (ether_addr_equal(port->raddr, skb->data)) | 620 | if (ether_addr_equal(port->raddr, skb->data)) |
622 | return port; | 621 | return port; |
623 | } | 622 | } |
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index defcd8a85744..417b2af1aa80 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, | |||
55 | const unsigned char *addr) | 55 | const unsigned char *addr) |
56 | { | 56 | { |
57 | struct macvlan_dev *vlan; | 57 | struct macvlan_dev *vlan; |
58 | struct hlist_node *n; | ||
59 | 58 | ||
60 | hlist_for_each_entry_rcu(vlan, n, &port->vlan_hash[addr[5]], hlist) { | 59 | hlist_for_each_entry_rcu(vlan, &port->vlan_hash[addr[5]], hlist) { |
61 | if (ether_addr_equal_64bits(vlan->dev->dev_addr, addr)) | 60 | if (ether_addr_equal_64bits(vlan->dev->dev_addr, addr)) |
62 | return vlan; | 61 | return vlan; |
63 | } | 62 | } |
@@ -149,7 +148,6 @@ static void macvlan_broadcast(struct sk_buff *skb, | |||
149 | { | 148 | { |
150 | const struct ethhdr *eth = eth_hdr(skb); | 149 | const struct ethhdr *eth = eth_hdr(skb); |
151 | const struct macvlan_dev *vlan; | 150 | const struct macvlan_dev *vlan; |
152 | struct hlist_node *n; | ||
153 | struct sk_buff *nskb; | 151 | struct sk_buff *nskb; |
154 | unsigned int i; | 152 | unsigned int i; |
155 | int err; | 153 | int err; |
@@ -159,7 +157,7 @@ static void macvlan_broadcast(struct sk_buff *skb, | |||
159 | return; | 157 | return; |
160 | 158 | ||
161 | for (i = 0; i < MACVLAN_HASH_SIZE; i++) { | 159 | for (i = 0; i < MACVLAN_HASH_SIZE; i++) { |
162 | hlist_for_each_entry_rcu(vlan, n, &port->vlan_hash[i], hlist) { | 160 | hlist_for_each_entry_rcu(vlan, &port->vlan_hash[i], hlist) { |
163 | if (vlan->dev == src || !(vlan->mode & mode)) | 161 | if (vlan->dev == src || !(vlan->mode & mode)) |
164 | continue; | 162 | continue; |
165 | 163 | ||
diff --git a/drivers/net/tun.c b/drivers/net/tun.c index b6f45c5d84d5..2c6a22e278ea 100644 --- a/drivers/net/tun.c +++ b/drivers/net/tun.c | |||
@@ -197,9 +197,8 @@ static inline u32 tun_hashfn(u32 rxhash) | |||
197 | static struct tun_flow_entry *tun_flow_find(struct hlist_head *head, u32 rxhash) | 197 | static struct tun_flow_entry *tun_flow_find(struct hlist_head *head, u32 rxhash) |
198 | { | 198 | { |
199 | struct tun_flow_entry *e; | 199 | struct tun_flow_entry *e; |
200 | struct hlist_node *n; | ||
201 | 200 | ||
202 | hlist_for_each_entry_rcu(e, n, head, hash_link) { | 201 | hlist_for_each_entry_rcu(e, head, hash_link) { |
203 | if (e->rxhash == rxhash) | 202 | if (e->rxhash == rxhash) |
204 | return e; | 203 | return e; |
205 | } | 204 | } |
@@ -241,9 +240,9 @@ static void tun_flow_flush(struct tun_struct *tun) | |||
241 | spin_lock_bh(&tun->lock); | 240 | spin_lock_bh(&tun->lock); |
242 | for (i = 0; i < TUN_NUM_FLOW_ENTRIES; i++) { | 241 | for (i = 0; i < TUN_NUM_FLOW_ENTRIES; i++) { |
243 | struct tun_flow_entry *e; | 242 | struct tun_flow_entry *e; |
244 | struct hlist_node *h, *n; | 243 | struct hlist_node *n; |
245 | 244 | ||
246 | hlist_for_each_entry_safe(e, h, n, &tun->flows[i], hash_link) | 245 | hlist_for_each_entry_safe(e, n, &tun->flows[i], hash_link) |
247 | tun_flow_delete(tun, e); | 246 | tun_flow_delete(tun, e); |
248 | } | 247 | } |
249 | spin_unlock_bh(&tun->lock); | 248 | spin_unlock_bh(&tun->lock); |
@@ -256,9 +255,9 @@ static void tun_flow_delete_by_queue(struct tun_struct *tun, u16 queue_index) | |||
256 | spin_lock_bh(&tun->lock); | 255 | spin_lock_bh(&tun->lock); |
257 | for (i = 0; i < TUN_NUM_FLOW_ENTRIES; i++) { | 256 | for (i = 0; i < TUN_NUM_FLOW_ENTRIES; i++) { |
258 | struct tun_flow_entry *e; | 257 | struct tun_flow_entry *e; |
259 | struct hlist_node *h, *n; | 258 | struct hlist_node *n; |
260 | 259 | ||
261 | hlist_for_each_entry_safe(e, h, n, &tun->flows[i], hash_link) { | 260 | hlist_for_each_entry_safe(e, n, &tun->flows[i], hash_link) { |
262 | if (e->queue_index == queue_index) | 261 | if (e->queue_index == queue_index) |
263 | tun_flow_delete(tun, e); | 262 | tun_flow_delete(tun, e); |
264 | } | 263 | } |
@@ -279,9 +278,9 @@ static void tun_flow_cleanup(unsigned long data) | |||
279 | spin_lock_bh(&tun->lock); | 278 | spin_lock_bh(&tun->lock); |
280 | for (i = 0; i < TUN_NUM_FLOW_ENTRIES; i++) { | 279 | for (i = 0; i < TUN_NUM_FLOW_ENTRIES; i++) { |
281 | struct tun_flow_entry *e; | 280 | struct tun_flow_entry *e; |
282 | struct hlist_node *h, *n; | 281 | struct hlist_node *n; |
283 | 282 | ||
284 | hlist_for_each_entry_safe(e, h, n, &tun->flows[i], hash_link) { | 283 | hlist_for_each_entry_safe(e, n, &tun->flows[i], hash_link) { |
285 | unsigned long this_timer; | 284 | unsigned long this_timer; |
286 | count++; | 285 | count++; |
287 | this_timer = e->updated + delay; | 286 | this_timer = e->updated + delay; |
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index f736823f8437..f10e58ac9c1b 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) | |||
145 | static struct vxlan_dev *vxlan_find_vni(struct net *net, u32 id) | 145 | static struct vxlan_dev *vxlan_find_vni(struct net *net, u32 id) |
146 | { | 146 | { |
147 | struct vxlan_dev *vxlan; | 147 | struct vxlan_dev *vxlan; |
148 | struct hlist_node *node; | ||
149 | 148 | ||
150 | hlist_for_each_entry_rcu(vxlan, node, vni_head(net, id), hlist) { | 149 | hlist_for_each_entry_rcu(vxlan, vni_head(net, id), hlist) { |
151 | if (vxlan->vni == id) | 150 | if (vxlan->vni == id) |
152 | return vxlan; | 151 | return vxlan; |
153 | } | 152 | } |
@@ -292,9 +291,8 @@ static struct vxlan_fdb *vxlan_find_mac(struct vxlan_dev *vxlan, | |||
292 | { | 291 | { |
293 | struct hlist_head *head = vxlan_fdb_head(vxlan, mac); | 292 | struct hlist_head *head = vxlan_fdb_head(vxlan, mac); |
294 | struct vxlan_fdb *f; | 293 | struct vxlan_fdb *f; |
295 | struct hlist_node *node; | ||
296 | 294 | ||
297 | hlist_for_each_entry_rcu(f, node, head, hlist) { | 295 | hlist_for_each_entry_rcu(f, head, hlist) { |
298 | if (compare_ether_addr(mac, f->eth_addr) == 0) | 296 | if (compare_ether_addr(mac, f->eth_addr) == 0) |
299 | return f; | 297 | return f; |
300 | } | 298 | } |
@@ -422,10 +420,9 @@ static int vxlan_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb, | |||
422 | 420 | ||
423 | for (h = 0; h < FDB_HASH_SIZE; ++h) { | 421 | for (h = 0; h < FDB_HASH_SIZE; ++h) { |
424 | struct vxlan_fdb *f; | 422 | struct vxlan_fdb *f; |
425 | struct hlist_node *n; | ||
426 | int err; | 423 | int err; |
427 | 424 | ||
428 | hlist_for_each_entry_rcu(f, n, &vxlan->fdb_head[h], hlist) { | 425 | hlist_for_each_entry_rcu(f, &vxlan->fdb_head[h], hlist) { |
429 | if (idx < cb->args[0]) | 426 | if (idx < cb->args[0]) |
430 | goto skip; | 427 | goto skip; |
431 | 428 | ||
@@ -483,11 +480,10 @@ static bool vxlan_group_used(struct vxlan_net *vn, | |||
483 | const struct vxlan_dev *this) | 480 | const struct vxlan_dev *this) |
484 | { | 481 | { |
485 | const struct vxlan_dev *vxlan; | 482 | const struct vxlan_dev *vxlan; |
486 | struct hlist_node *node; | ||
487 | unsigned h; | 483 | unsigned h; |
488 | 484 | ||
489 | for (h = 0; h < VNI_HASH_SIZE; ++h) | 485 | for (h = 0; h < VNI_HASH_SIZE; ++h) |
490 | hlist_for_each_entry(vxlan, node, &vn->vni_list[h], hlist) { | 486 | hlist_for_each_entry(vxlan, &vn->vni_list[h], hlist) { |
491 | if (vxlan == this) | 487 | if (vxlan == this) |
492 | continue; | 488 | continue; |
493 | 489 | ||
diff --git a/drivers/net/wireless/zd1201.c b/drivers/net/wireless/zd1201.c index 48273dd05b63..4941f201d6c8 100644 --- a/drivers/net/wireless/zd1201.c +++ b/drivers/net/wireless/zd1201.c | |||
@@ -309,7 +309,6 @@ static void zd1201_usbrx(struct urb *urb) | |||
309 | if (data[urb->actual_length-1] == ZD1201_PACKET_RXDATA) { | 309 | if (data[urb->actual_length-1] == ZD1201_PACKET_RXDATA) { |
310 | int datalen = urb->actual_length-1; | 310 | int datalen = urb->actual_length-1; |
311 | unsigned short len, fc, seq; | 311 | unsigned short len, fc, seq; |
312 | struct hlist_node *node; | ||
313 | 312 | ||
314 | len = ntohs(*(__be16 *)&data[datalen-2]); | 313 | len = ntohs(*(__be16 *)&data[datalen-2]); |
315 | if (len>datalen) | 314 | if (len>datalen) |
@@ -362,7 +361,7 @@ static void zd1201_usbrx(struct urb *urb) | |||
362 | hlist_add_head(&frag->fnode, &zd->fraglist); | 361 | hlist_add_head(&frag->fnode, &zd->fraglist); |
363 | goto resubmit; | 362 | goto resubmit; |
364 | } | 363 | } |
365 | hlist_for_each_entry(frag, node, &zd->fraglist, fnode) | 364 | hlist_for_each_entry(frag, &zd->fraglist, fnode) |
366 | if (frag->seq == (seq&IEEE80211_SCTL_SEQ)) | 365 | if (frag->seq == (seq&IEEE80211_SCTL_SEQ)) |
367 | break; | 366 | break; |
368 | if (!frag) | 367 | if (!frag) |
@@ -1831,14 +1830,14 @@ err_zd: | |||
1831 | static void zd1201_disconnect(struct usb_interface *interface) | 1830 | static void zd1201_disconnect(struct usb_interface *interface) |
1832 | { | 1831 | { |
1833 | struct zd1201 *zd = usb_get_intfdata(interface); | 1832 | struct zd1201 *zd = usb_get_intfdata(interface); |
1834 | struct hlist_node *node, *node2; | 1833 | struct hlist_node *node2; |
1835 | struct zd1201_frag *frag; | 1834 | struct zd1201_frag *frag; |
1836 | 1835 | ||
1837 | if (!zd) | 1836 | if (!zd) |
1838 | return; | 1837 | return; |
1839 | usb_set_intfdata(interface, NULL); | 1838 | usb_set_intfdata(interface, NULL); |
1840 | 1839 | ||
1841 | hlist_for_each_entry_safe(frag, node, node2, &zd->fraglist, fnode) { | 1840 | hlist_for_each_entry_safe(frag, node2, &zd->fraglist, fnode) { |
1842 | hlist_del_init(&frag->fnode); | 1841 | hlist_del_init(&frag->fnode); |
1843 | kfree_skb(frag->skb); | 1842 | kfree_skb(frag->skb); |
1844 | kfree(frag); | 1843 | kfree(frag); |
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 924e4665bd57..b099e0025d2b 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( | |||
842 | struct pci_dev *pci_dev, char cap) | 842 | struct pci_dev *pci_dev, char cap) |
843 | { | 843 | { |
844 | struct pci_cap_saved_state *tmp; | 844 | struct pci_cap_saved_state *tmp; |
845 | struct hlist_node *pos; | ||
846 | 845 | ||
847 | hlist_for_each_entry(tmp, pos, &pci_dev->saved_cap_space, next) { | 846 | hlist_for_each_entry(tmp, &pci_dev->saved_cap_space, next) { |
848 | if (tmp->cap.cap_nr == cap) | 847 | if (tmp->cap.cap_nr == cap) |
849 | return tmp; | 848 | return tmp; |
850 | } | 849 | } |
@@ -1041,7 +1040,6 @@ struct pci_saved_state *pci_store_saved_state(struct pci_dev *dev) | |||
1041 | struct pci_saved_state *state; | 1040 | struct pci_saved_state *state; |
1042 | struct pci_cap_saved_state *tmp; | 1041 | struct pci_cap_saved_state *tmp; |
1043 | struct pci_cap_saved_data *cap; | 1042 | struct pci_cap_saved_data *cap; |
1044 | struct hlist_node *pos; | ||
1045 | size_t size; | 1043 | size_t size; |
1046 | 1044 | ||
1047 | if (!dev->state_saved) | 1045 | if (!dev->state_saved) |
@@ -1049,7 +1047,7 @@ struct pci_saved_state *pci_store_saved_state(struct pci_dev *dev) | |||
1049 | 1047 | ||
1050 | size = sizeof(*state) + sizeof(struct pci_cap_saved_data); | 1048 | size = sizeof(*state) + sizeof(struct pci_cap_saved_data); |
1051 | 1049 | ||
1052 | hlist_for_each_entry(tmp, pos, &dev->saved_cap_space, next) | 1050 | hlist_for_each_entry(tmp, &dev->saved_cap_space, next) |
1053 | size += sizeof(struct pci_cap_saved_data) + tmp->cap.size; | 1051 | size += sizeof(struct pci_cap_saved_data) + tmp->cap.size; |
1054 | 1052 | ||
1055 | state = kzalloc(size, GFP_KERNEL); | 1053 | state = kzalloc(size, GFP_KERNEL); |
@@ -1060,7 +1058,7 @@ struct pci_saved_state *pci_store_saved_state(struct pci_dev *dev) | |||
1060 | sizeof(state->config_space)); | 1058 | sizeof(state->config_space)); |
1061 | 1059 | ||
1062 | cap = state->cap; | 1060 | cap = state->cap; |
1063 | hlist_for_each_entry(tmp, pos, &dev->saved_cap_space, next) { | 1061 | hlist_for_each_entry(tmp, &dev->saved_cap_space, next) { |
1064 | size_t len = sizeof(struct pci_cap_saved_data) + tmp->cap.size; | 1062 | size_t len = sizeof(struct pci_cap_saved_data) + tmp->cap.size; |
1065 | memcpy(cap, &tmp->cap, len); | 1063 | memcpy(cap, &tmp->cap, len); |
1066 | cap = (struct pci_cap_saved_data *)((u8 *)cap + len); | 1064 | cap = (struct pci_cap_saved_data *)((u8 *)cap + len); |
@@ -2038,9 +2036,9 @@ void pci_allocate_cap_save_buffers(struct pci_dev *dev) | |||
2038 | void pci_free_cap_save_buffers(struct pci_dev *dev) | 2036 | void pci_free_cap_save_buffers(struct pci_dev *dev) |
2039 | { | 2037 | { |
2040 | struct pci_cap_saved_state *tmp; | 2038 | struct pci_cap_saved_state *tmp; |
2041 | struct hlist_node *pos, *n; | 2039 | struct hlist_node *n; |
2042 | 2040 | ||
2043 | hlist_for_each_entry_safe(tmp, pos, n, &dev->saved_cap_space, next) | 2041 | hlist_for_each_entry_safe(tmp, n, &dev->saved_cap_space, next) |
2044 | kfree(tmp); | 2042 | kfree(tmp); |
2045 | } | 2043 | } |
2046 | 2044 | ||
diff --git a/drivers/staging/android/binder.c b/drivers/staging/android/binder.c index 538ebe213129..24456a0de6b2 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) | |||
2880 | 2880 | ||
2881 | static void binder_deferred_release(struct binder_proc *proc) | 2881 | static void binder_deferred_release(struct binder_proc *proc) |
2882 | { | 2882 | { |
2883 | struct hlist_node *pos; | ||
2884 | struct binder_transaction *t; | 2883 | struct binder_transaction *t; |
2885 | struct rb_node *n; | 2884 | struct rb_node *n; |
2886 | int threads, nodes, incoming_refs, outgoing_refs, buffers, active_transactions, page_count; | 2885 | 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) | |||
2924 | node->local_weak_refs = 0; | 2923 | node->local_weak_refs = 0; |
2925 | hlist_add_head(&node->dead_node, &binder_dead_nodes); | 2924 | hlist_add_head(&node->dead_node, &binder_dead_nodes); |
2926 | 2925 | ||
2927 | hlist_for_each_entry(ref, pos, &node->refs, node_entry) { | 2926 | hlist_for_each_entry(ref, &node->refs, node_entry) { |
2928 | incoming_refs++; | 2927 | incoming_refs++; |
2929 | if (ref->death) { | 2928 | if (ref->death) { |
2930 | death++; | 2929 | death++; |
@@ -3156,12 +3155,11 @@ static void print_binder_thread(struct seq_file *m, | |||
3156 | static void print_binder_node(struct seq_file *m, struct binder_node *node) | 3155 | static void print_binder_node(struct seq_file *m, struct binder_node *node) |
3157 | { | 3156 | { |
3158 | struct binder_ref *ref; | 3157 | struct binder_ref *ref; |
3159 | struct hlist_node *pos; | ||
3160 | struct binder_work *w; | 3158 | struct binder_work *w; |
3161 | int count; | 3159 | int count; |
3162 | 3160 | ||
3163 | count = 0; | 3161 | count = 0; |
3164 | hlist_for_each_entry(ref, pos, &node->refs, node_entry) | 3162 | hlist_for_each_entry(ref, &node->refs, node_entry) |
3165 | count++; | 3163 | count++; |
3166 | 3164 | ||
3167 | seq_printf(m, " node %d: u%p c%p hs %d hw %d ls %d lw %d is %d iw %d", | 3165 | 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) | |||
3171 | node->internal_strong_refs, count); | 3169 | node->internal_strong_refs, count); |
3172 | if (count) { | 3170 | if (count) { |
3173 | seq_puts(m, " proc"); | 3171 | seq_puts(m, " proc"); |
3174 | hlist_for_each_entry(ref, pos, &node->refs, node_entry) | 3172 | hlist_for_each_entry(ref, &node->refs, node_entry) |
3175 | seq_printf(m, " %d", ref->proc->pid); | 3173 | seq_printf(m, " %d", ref->proc->pid); |
3176 | } | 3174 | } |
3177 | seq_puts(m, "\n"); | 3175 | seq_puts(m, "\n"); |
@@ -3369,7 +3367,6 @@ static void print_binder_proc_stats(struct seq_file *m, | |||
3369 | static int binder_state_show(struct seq_file *m, void *unused) | 3367 | static int binder_state_show(struct seq_file *m, void *unused) |
3370 | { | 3368 | { |
3371 | struct binder_proc *proc; | 3369 | struct binder_proc *proc; |
3372 | struct hlist_node *pos; | ||
3373 | struct binder_node *node; | 3370 | struct binder_node *node; |
3374 | int do_lock = !binder_debug_no_lock; | 3371 | int do_lock = !binder_debug_no_lock; |
3375 | 3372 | ||
@@ -3380,10 +3377,10 @@ static int binder_state_show(struct seq_file *m, void *unused) | |||
3380 | 3377 | ||
3381 | if (!hlist_empty(&binder_dead_nodes)) | 3378 | if (!hlist_empty(&binder_dead_nodes)) |
3382 | seq_puts(m, "dead nodes:\n"); | 3379 | seq_puts(m, "dead nodes:\n"); |
3383 | hlist_for_each_entry(node, pos, &binder_dead_nodes, dead_node) | 3380 | hlist_for_each_entry(node, &binder_dead_nodes, dead_node) |
3384 | print_binder_node(m, node); | 3381 | print_binder_node(m, node); |
3385 | 3382 | ||
3386 | hlist_for_each_entry(proc, pos, &binder_procs, proc_node) | 3383 | hlist_for_each_entry(proc, &binder_procs, proc_node) |
3387 | print_binder_proc(m, proc, 1); | 3384 | print_binder_proc(m, proc, 1); |
3388 | if (do_lock) | 3385 | if (do_lock) |
3389 | binder_unlock(__func__); | 3386 | binder_unlock(__func__); |
@@ -3393,7 +3390,6 @@ static int binder_state_show(struct seq_file *m, void *unused) | |||
3393 | static int binder_stats_show(struct seq_file *m, void *unused) | 3390 | static int binder_stats_show(struct seq_file *m, void *unused) |
3394 | { | 3391 | { |
3395 | struct binder_proc *proc; | 3392 | struct binder_proc *proc; |
3396 | struct hlist_node *pos; | ||
3397 | int do_lock = !binder_debug_no_lock; | 3393 | int do_lock = !binder_debug_no_lock; |
3398 | 3394 | ||
3399 | if (do_lock) | 3395 | if (do_lock) |
@@ -3403,7 +3399,7 @@ static int binder_stats_show(struct seq_file *m, void *unused) | |||
3403 | 3399 | ||
3404 | print_binder_stats(m, "", &binder_stats); | 3400 | print_binder_stats(m, "", &binder_stats); |
3405 | 3401 | ||
3406 | hlist_for_each_entry(proc, pos, &binder_procs, proc_node) | 3402 | hlist_for_each_entry(proc, &binder_procs, proc_node) |
3407 | print_binder_proc_stats(m, proc); | 3403 | print_binder_proc_stats(m, proc); |
3408 | if (do_lock) | 3404 | if (do_lock) |
3409 | binder_unlock(__func__); | 3405 | binder_unlock(__func__); |
@@ -3413,14 +3409,13 @@ static int binder_stats_show(struct seq_file *m, void *unused) | |||
3413 | static int binder_transactions_show(struct seq_file *m, void *unused) | 3409 | static int binder_transactions_show(struct seq_file *m, void *unused) |
3414 | { | 3410 | { |
3415 | struct binder_proc *proc; | 3411 | struct binder_proc *proc; |
3416 | struct hlist_node *pos; | ||
3417 | int do_lock = !binder_debug_no_lock; | 3412 | int do_lock = !binder_debug_no_lock; |
3418 | 3413 | ||
3419 | if (do_lock) | 3414 | if (do_lock) |
3420 | binder_lock(__func__); | 3415 | binder_lock(__func__); |
3421 | 3416 | ||
3422 | seq_puts(m, "binder transactions:\n"); | 3417 | seq_puts(m, "binder transactions:\n"); |
3423 | hlist_for_each_entry(proc, pos, &binder_procs, proc_node) | 3418 | hlist_for_each_entry(proc, &binder_procs, proc_node) |
3424 | print_binder_proc(m, proc, 0); | 3419 | print_binder_proc(m, proc, 0); |
3425 | if (do_lock) | 3420 | if (do_lock) |
3426 | binder_unlock(__func__); | 3421 | binder_unlock(__func__); |
diff --git a/drivers/target/tcm_fc/tfc_sess.c b/drivers/target/tcm_fc/tfc_sess.c index 6659dd36e806..113f33598b9f 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) | |||
169 | { | 169 | { |
170 | struct ft_tport *tport; | 170 | struct ft_tport *tport; |
171 | struct hlist_head *head; | 171 | struct hlist_head *head; |
172 | struct hlist_node *pos; | ||
173 | struct ft_sess *sess; | 172 | struct ft_sess *sess; |
174 | 173 | ||
175 | rcu_read_lock(); | 174 | rcu_read_lock(); |
@@ -178,7 +177,7 @@ static struct ft_sess *ft_sess_get(struct fc_lport *lport, u32 port_id) | |||
178 | goto out; | 177 | goto out; |
179 | 178 | ||
180 | head = &tport->hash[ft_sess_hash(port_id)]; | 179 | head = &tport->hash[ft_sess_hash(port_id)]; |
181 | hlist_for_each_entry_rcu(sess, pos, head, hash) { | 180 | hlist_for_each_entry_rcu(sess, head, hash) { |
182 | if (sess->port_id == port_id) { | 181 | if (sess->port_id == port_id) { |
183 | kref_get(&sess->kref); | 182 | kref_get(&sess->kref); |
184 | rcu_read_unlock(); | 183 | rcu_read_unlock(); |
@@ -201,10 +200,9 @@ static struct ft_sess *ft_sess_create(struct ft_tport *tport, u32 port_id, | |||
201 | { | 200 | { |
202 | struct ft_sess *sess; | 201 | struct ft_sess *sess; |
203 | struct hlist_head *head; | 202 | struct hlist_head *head; |
204 | struct hlist_node *pos; | ||
205 | 203 | ||
206 | head = &tport->hash[ft_sess_hash(port_id)]; | 204 | head = &tport->hash[ft_sess_hash(port_id)]; |
207 | hlist_for_each_entry_rcu(sess, pos, head, hash) | 205 | hlist_for_each_entry_rcu(sess, head, hash) |
208 | if (sess->port_id == port_id) | 206 | if (sess->port_id == port_id) |
209 | return sess; | 207 | return sess; |
210 | 208 | ||
@@ -253,11 +251,10 @@ static void ft_sess_unhash(struct ft_sess *sess) | |||
253 | static struct ft_sess *ft_sess_delete(struct ft_tport *tport, u32 port_id) | 251 | static struct ft_sess *ft_sess_delete(struct ft_tport *tport, u32 port_id) |
254 | { | 252 | { |
255 | struct hlist_head *head; | 253 | struct hlist_head *head; |
256 | struct hlist_node *pos; | ||
257 | struct ft_sess *sess; | 254 | struct ft_sess *sess; |
258 | 255 | ||
259 | head = &tport->hash[ft_sess_hash(port_id)]; | 256 | head = &tport->hash[ft_sess_hash(port_id)]; |
260 | hlist_for_each_entry_rcu(sess, pos, head, hash) { | 257 | hlist_for_each_entry_rcu(sess, head, hash) { |
261 | if (sess->port_id == port_id) { | 258 | if (sess->port_id == port_id) { |
262 | ft_sess_unhash(sess); | 259 | ft_sess_unhash(sess); |
263 | return sess; | 260 | return sess; |
@@ -273,12 +270,11 @@ static struct ft_sess *ft_sess_delete(struct ft_tport *tport, u32 port_id) | |||
273 | static void ft_sess_delete_all(struct ft_tport *tport) | 270 | static void ft_sess_delete_all(struct ft_tport *tport) |
274 | { | 271 | { |
275 | struct hlist_head *head; | 272 | struct hlist_head *head; |
276 | struct hlist_node *pos; | ||
277 | struct ft_sess *sess; | 273 | struct ft_sess *sess; |
278 | 274 | ||
279 | for (head = tport->hash; | 275 | for (head = tport->hash; |
280 | head < &tport->hash[FT_SESS_HASH_SIZE]; head++) { | 276 | head < &tport->hash[FT_SESS_HASH_SIZE]; head++) { |
281 | hlist_for_each_entry_rcu(sess, pos, head, hash) { | 277 | hlist_for_each_entry_rcu(sess, head, hash) { |
282 | ft_sess_unhash(sess); | 278 | ft_sess_unhash(sess); |
283 | transport_deregister_session_configfs(sess->se_sess); | 279 | transport_deregister_session_configfs(sess->se_sess); |
284 | ft_sess_put(sess); /* release from table */ | 280 | ft_sess_put(sess); /* release from table */ |