diff options
author | Stephen Hemminger <shemminger@osdl.org> | 2005-05-03 19:24:03 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-05-03 19:24:03 -0400 |
commit | 8cbe1d46d69f9e2c49f284fe0e9aee3387bd2c71 (patch) | |
tree | b9d25110d46551fa80a2c34e1b9147f855e43e41 | |
parent | bd96535b81ad09d7593cc75093534acb984d3dc9 (diff) |
[PKT_SCHED]: netetm: trap infinite loop hange on qlen underflow
Due to bugs in netem (fixed by later patches), it is possible to get qdisc
qlen to go negative. If this happens the CPU ends up spinning forever
in qdisc_run(). So add a BUG_ON() to trap it.
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/sched/sch_generic.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index 9a2f8e41a26e..87e48a4e1051 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c | |||
@@ -179,6 +179,7 @@ requeue: | |||
179 | netif_schedule(dev); | 179 | netif_schedule(dev); |
180 | return 1; | 180 | return 1; |
181 | } | 181 | } |
182 | BUG_ON((int) q->q.qlen < 0); | ||
182 | return q->q.qlen; | 183 | return q->q.qlen; |
183 | } | 184 | } |
184 | 185 | ||