From: Jarek Poplawski Date: Tue, 20 Jan 2009 22:06:26 +0000 (-0800) Subject: pkt_sched: sch_htb: Fix deadlock in hrtimers triggered by HTB X-Git-Tag: v2.6.28.2~29 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=e46032840eae03a502638049468edc1167345c9c;p=karo-tx-linux.git pkt_sched: sch_htb: Fix deadlock in hrtimers triggered by HTB [ Upstream commit: none This is a quick fix for -stable purposes. Upstream fixes these problems via a large set of invasive hrtimer changes. ] Most probably there is a (still unproven) race in hrtimers (before 2.6.29 kernels), which causes a corruption of hrtimers rbtree. This patch doesn't fix it, but should let HTB avoid triggering the bug. Reported-by: Denys Fedoryschenko Reported-by: Badalian Vyacheslav Reported-by: Chris Caputo Tested-by: Badalian Vyacheslav Signed-off-by: Jarek Poplawski Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c index d14f02056ae6..d2943a4864fa 100644 --- a/net/sched/sch_htb.c +++ b/net/sched/sch_htb.c @@ -924,6 +924,7 @@ static struct sk_buff *htb_dequeue(struct Qdisc *sch) } } sch->qstats.overlimits++; + qdisc_watchdog_cancel(&q->watchdog); qdisc_watchdog_schedule(&q->watchdog, next_event); fin: return skb;