diff options
| author | Thomas Graf <tgraf@suug.ch> | 2005-11-05 15:14:22 -0500 |
|---|---|---|
| committer | Thomas Graf <tgr@axs.localdomain> | 2005-11-05 16:02:28 -0500 |
| commit | 4a591834cfc79b2ff74457e976420361f8ae28b4 (patch) | |
| tree | b4ba89a184d9af8e004399b66deae36a3e87b599 | |
| parent | 18e3fb84e698dcab1c5fa7b7c89921b826bb5620 (diff) | |
[PKT_SCHED]: GRED: Remove initd flag
The case when the default VQ is not set up yet is already handled
in a less error prone way.
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
| -rw-r--r-- | net/sched/sch_gred.c | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/net/sched/sch_gred.c b/net/sched/sch_gred.c index 646dbdc4ef29..29869a077480 100644 --- a/net/sched/sch_gred.c +++ b/net/sched/sch_gred.c | |||
| @@ -89,7 +89,6 @@ struct gred_sched | |||
| 89 | unsigned long flags; | 89 | unsigned long flags; |
| 90 | u32 DPs; | 90 | u32 DPs; |
| 91 | u32 def; | 91 | u32 def; |
| 92 | u8 initd; | ||
| 93 | }; | 92 | }; |
| 94 | 93 | ||
| 95 | static inline int gred_wred_mode(struct gred_sched *table) | 94 | static inline int gred_wred_mode(struct gred_sched *table) |
| @@ -166,14 +165,7 @@ gred_enqueue(struct sk_buff *skb, struct Qdisc* sch) | |||
| 166 | struct gred_sched *t= qdisc_priv(sch); | 165 | struct gred_sched *t= qdisc_priv(sch); |
| 167 | unsigned long qavg = 0; | 166 | unsigned long qavg = 0; |
| 168 | int i=0; | 167 | int i=0; |
| 169 | u16 dp; | 168 | u16 dp = tc_index_to_dp(skb); |
| 170 | |||
| 171 | if (!t->initd && skb_queue_len(&sch->q) < (sch->dev->tx_queue_len ? : 1)) { | ||
| 172 | D2PRINTK("NO GRED Queues setup yet! Enqueued anyway\n"); | ||
| 173 | goto do_enqueue; | ||
| 174 | } | ||
| 175 | |||
| 176 | dp = tc_index_to_dp(skb); | ||
| 177 | 169 | ||
| 178 | if (dp >= t->DPs || (q = t->tab[dp]) == NULL) { | 170 | if (dp >= t->DPs || (q = t->tab[dp]) == NULL) { |
| 179 | dp = t->def; | 171 | dp = t->def; |
| @@ -241,7 +233,6 @@ gred_enqueue(struct sk_buff *skb, struct Qdisc* sch) | |||
| 241 | 233 | ||
| 242 | if (q->backlog + skb->len <= q->limit) { | 234 | if (q->backlog + skb->len <= q->limit) { |
| 243 | q->backlog += skb->len; | 235 | q->backlog += skb->len; |
| 244 | do_enqueue: | ||
| 245 | return qdisc_enqueue_tail(skb, sch); | 236 | return qdisc_enqueue_tail(skb, sch); |
| 246 | } | 237 | } |
| 247 | 238 | ||
| @@ -420,8 +411,6 @@ static inline int gred_change_table_def(struct Qdisc *sch, struct rtattr *dps) | |||
| 420 | } | 411 | } |
| 421 | } | 412 | } |
| 422 | 413 | ||
| 423 | table->initd = 0; | ||
| 424 | |||
| 425 | return 0; | 414 | return 0; |
| 426 | } | 415 | } |
| 427 | 416 | ||
| @@ -509,8 +498,6 @@ static int gred_change(struct Qdisc *sch, struct rtattr *opt) | |||
| 509 | goto errout_locked; | 498 | goto errout_locked; |
| 510 | } | 499 | } |
| 511 | 500 | ||
| 512 | table->initd = 1; | ||
| 513 | |||
| 514 | if (gred_rio_mode(table)) { | 501 | if (gred_rio_mode(table)) { |
| 515 | gred_disable_wred_mode(table); | 502 | gred_disable_wred_mode(table); |
| 516 | if (gred_wred_mode_check(sch)) | 503 | if (gred_wred_mode_check(sch)) |
