提交 bb239acf 编写于 作者: P Patrick McHardy 提交者: David S. Miller

[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: NPatrick McHardy <kaber@trash.net>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 4361cb17
...@@ -1070,7 +1070,7 @@ cbq_dequeue(struct Qdisc *sch) ...@@ -1070,7 +1070,7 @@ cbq_dequeue(struct Qdisc *sch)
sch->qstats.overlimits++; sch->qstats.overlimits++;
if (q->wd_expires) if (q->wd_expires)
qdisc_watchdog_schedule(&q->watchdog, qdisc_watchdog_schedule(&q->watchdog,
q->now + q->wd_expires); now + q->wd_expires);
} }
return NULL; return NULL;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册