patch-2.4.22 linux-2.4.22/net/sched/sch_cbq.c
Next file: linux-2.4.22/net/sched/sch_csz.c
Previous file: linux-2.4.22/net/sched/sch_atm.c
Back to the patch index
Back to the overall index
- Lines: 39
- Date:
2003-08-25 04:44:44.000000000 -0700
- Orig file:
linux-2.4.21/net/sched/sch_cbq.c
- Orig date:
2001-12-21 09:42:06.000000000 -0800
diff -urN linux-2.4.21/net/sched/sch_cbq.c linux-2.4.22/net/sched/sch_cbq.c
@@ -1056,11 +1056,9 @@
sch->stats.overlimits++;
if (q->wd_expires && !netif_queue_stopped(sch->dev)) {
long delay = PSCHED_US2JIFFIE(q->wd_expires);
- del_timer(&q->wd_timer);
if (delay <= 0)
delay = 1;
- q->wd_timer.expires = jiffies + delay;
- add_timer(&q->wd_timer);
+ mod_timer(&q->wd_timer, jiffies + delay);
sch->flags |= TCQ_F_THROTTLED;
}
}
@@ -1233,11 +1231,12 @@
}
}
-static int cbq_drop(struct Qdisc* sch)
+static unsigned int cbq_drop(struct Qdisc* sch)
{
struct cbq_sched_data *q = (struct cbq_sched_data *)sch->data;
struct cbq_class *cl, *cl_head;
int prio;
+ unsigned int len;
for (prio = TC_CBQ_MAXPRIO; prio >= 0; prio--) {
if ((cl_head = q->active[prio]) == NULL)
@@ -1245,9 +1244,9 @@
cl = cl_head;
do {
- if (cl->q->ops->drop && cl->q->ops->drop(cl->q)) {
+ if (cl->q->ops->drop && (len = cl->q->ops->drop(cl->q))) {
sch->q.qlen--;
- return 1;
+ return len;
}
} while ((cl = cl->next_alive) != cl_head);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)