[PKT_SCHED]: netetm: trap infinite loop hange on qlen underflow
Stephen Hemminger [Tue, 3 May 2005 23:24:03 +0000 (16:24 -0700)]
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>

net/sched/sch_generic.c

index 9a2f8e4..87e48a4 100644 (file)
@@ -179,6 +179,7 @@ requeue:
                netif_schedule(dev);
                return 1;
        }
+       BUG_ON((int) q->q.qlen < 0);
        return q->q.qlen;
 }