From: Patrick McHardy Date: Fri, 16 Mar 2007 19:31:28 +0000 (-0700) Subject: [NET_SCHED]: sch_cbq: fix watchdog scheduled too late X-Git-Tag: v2.6.22-rc1~1128^2~268 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb239acf5679ee1936f6b1b034ad260c4fec89c8;p=linux-2.6 [NET_SCHED]: sch_cbq: fix watchdog scheduled too late q->now is increased during dequeue and doesn't contain the current time afterwards, resulting in a too large timeout value for the qdisc watchdog. Use "now" instead, which still contains the current time. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller --- diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c index 0491fad97c..d83414d828 100644 --- a/net/sched/sch_cbq.c +++ b/net/sched/sch_cbq.c @@ -1070,7 +1070,7 @@ cbq_dequeue(struct Qdisc *sch) sch->qstats.overlimits++; if (q->wd_expires) qdisc_watchdog_schedule(&q->watchdog, - q->now + q->wd_expires); + now + q->wd_expires); } return NULL; }