diff options
Diffstat (limited to 'net/sched/sch_cbq.c')
-rw-r--r-- | net/sched/sch_cbq.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c index 0e19948470b8..13aa47aa2ffb 100644 --- a/net/sched/sch_cbq.c +++ b/net/sched/sch_cbq.c | |||
@@ -1041,14 +1041,13 @@ static void cbq_adjust_levels(struct cbq_class *this) | |||
1041 | static void cbq_normalize_quanta(struct cbq_sched_data *q, int prio) | 1041 | static void cbq_normalize_quanta(struct cbq_sched_data *q, int prio) |
1042 | { | 1042 | { |
1043 | struct cbq_class *cl; | 1043 | struct cbq_class *cl; |
1044 | struct hlist_node *n; | ||
1045 | unsigned int h; | 1044 | unsigned int h; |
1046 | 1045 | ||
1047 | if (q->quanta[prio] == 0) | 1046 | if (q->quanta[prio] == 0) |
1048 | return; | 1047 | return; |
1049 | 1048 | ||
1050 | for (h = 0; h < q->clhash.hashsize; h++) { | 1049 | for (h = 0; h < q->clhash.hashsize; h++) { |
1051 | hlist_for_each_entry(cl, n, &q->clhash.hash[h], common.hnode) { | 1050 | hlist_for_each_entry(cl, &q->clhash.hash[h], common.hnode) { |
1052 | /* BUGGGG... Beware! This expression suffer of | 1051 | /* BUGGGG... Beware! This expression suffer of |
1053 | * arithmetic overflows! | 1052 | * arithmetic overflows! |
1054 | */ | 1053 | */ |
@@ -1087,10 +1086,9 @@ static void cbq_sync_defmap(struct cbq_class *cl) | |||
1087 | continue; | 1086 | continue; |
1088 | 1087 | ||
1089 | for (h = 0; h < q->clhash.hashsize; h++) { | 1088 | for (h = 0; h < q->clhash.hashsize; h++) { |
1090 | struct hlist_node *n; | ||
1091 | struct cbq_class *c; | 1089 | struct cbq_class *c; |
1092 | 1090 | ||
1093 | hlist_for_each_entry(c, n, &q->clhash.hash[h], | 1091 | hlist_for_each_entry(c, &q->clhash.hash[h], |
1094 | common.hnode) { | 1092 | common.hnode) { |
1095 | if (c->split == split && c->level < level && | 1093 | if (c->split == split && c->level < level && |
1096 | c->defmap & (1<<i)) { | 1094 | c->defmap & (1<<i)) { |
@@ -1210,7 +1208,6 @@ cbq_reset(struct Qdisc *sch) | |||
1210 | { | 1208 | { |
1211 | struct cbq_sched_data *q = qdisc_priv(sch); | 1209 | struct cbq_sched_data *q = qdisc_priv(sch); |
1212 | struct cbq_class *cl; | 1210 | struct cbq_class *cl; |
1213 | struct hlist_node *n; | ||
1214 | int prio; | 1211 | int prio; |
1215 | unsigned int h; | 1212 | unsigned int h; |
1216 | 1213 | ||
@@ -1228,7 +1225,7 @@ cbq_reset(struct Qdisc *sch) | |||
1228 | q->active[prio] = NULL; | 1225 | q->active[prio] = NULL; |
1229 | 1226 | ||
1230 | for (h = 0; h < q->clhash.hashsize; h++) { | 1227 | for (h = 0; h < q->clhash.hashsize; h++) { |
1231 | hlist_for_each_entry(cl, n, &q->clhash.hash[h], common.hnode) { | 1228 | hlist_for_each_entry(cl, &q->clhash.hash[h], common.hnode) { |
1232 | qdisc_reset(cl->q); | 1229 | qdisc_reset(cl->q); |
1233 | 1230 | ||
1234 | cl->next_alive = NULL; | 1231 | cl->next_alive = NULL; |
@@ -1697,7 +1694,7 @@ static void cbq_destroy_class(struct Qdisc *sch, struct cbq_class *cl) | |||
1697 | static void cbq_destroy(struct Qdisc *sch) | 1694 | static void cbq_destroy(struct Qdisc *sch) |
1698 | { | 1695 | { |
1699 | struct cbq_sched_data *q = qdisc_priv(sch); | 1696 | struct cbq_sched_data *q = qdisc_priv(sch); |
1700 | struct hlist_node *n, *next; | 1697 | struct hlist_node *next; |
1701 | struct cbq_class *cl; | 1698 | struct cbq_class *cl; |
1702 | unsigned int h; | 1699 | unsigned int h; |
1703 | 1700 | ||
@@ -1710,11 +1707,11 @@ static void cbq_destroy(struct Qdisc *sch) | |||
1710 | * be bound to classes which have been destroyed already. --TGR '04 | 1707 | * be bound to classes which have been destroyed already. --TGR '04 |
1711 | */ | 1708 | */ |
1712 | for (h = 0; h < q->clhash.hashsize; h++) { | 1709 | for (h = 0; h < q->clhash.hashsize; h++) { |
1713 | hlist_for_each_entry(cl, n, &q->clhash.hash[h], common.hnode) | 1710 | hlist_for_each_entry(cl, &q->clhash.hash[h], common.hnode) |
1714 | tcf_destroy_chain(&cl->filter_list); | 1711 | tcf_destroy_chain(&cl->filter_list); |
1715 | } | 1712 | } |
1716 | for (h = 0; h < q->clhash.hashsize; h++) { | 1713 | for (h = 0; h < q->clhash.hashsize; h++) { |
1717 | hlist_for_each_entry_safe(cl, n, next, &q->clhash.hash[h], | 1714 | hlist_for_each_entry_safe(cl, next, &q->clhash.hash[h], |
1718 | common.hnode) | 1715 | common.hnode) |
1719 | cbq_destroy_class(sch, cl); | 1716 | cbq_destroy_class(sch, cl); |
1720 | } | 1717 | } |
@@ -2013,14 +2010,13 @@ static void cbq_walk(struct Qdisc *sch, struct qdisc_walker *arg) | |||
2013 | { | 2010 | { |
2014 | struct cbq_sched_data *q = qdisc_priv(sch); | 2011 | struct cbq_sched_data *q = qdisc_priv(sch); |
2015 | struct cbq_class *cl; | 2012 | struct cbq_class *cl; |
2016 | struct hlist_node *n; | ||
2017 | unsigned int h; | 2013 | unsigned int h; |
2018 | 2014 | ||
2019 | if (arg->stop) | 2015 | if (arg->stop) |
2020 | return; | 2016 | return; |
2021 | 2017 | ||
2022 | for (h = 0; h < q->clhash.hashsize; h++) { | 2018 | for (h = 0; h < q->clhash.hashsize; h++) { |
2023 | hlist_for_each_entry(cl, n, &q->clhash.hash[h], common.hnode) { | 2019 | hlist_for_each_entry(cl, &q->clhash.hash[h], common.hnode) { |
2024 | if (arg->count < arg->skip) { | 2020 | if (arg->count < arg->skip) { |
2025 | arg->count++; | 2021 | arg->count++; |
2026 | continue; | 2022 | continue; |