summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Devera <devik@cdi.cz>2004-01-06 06:19:46 -0800
committerDavid S. Miller <davem@nuts.ninka.net>2004-01-06 06:19:46 -0800
commit5cc3937bea76b5d2fe032c4290680aa0d1baf6bf (patch)
tree601b37853c88bf8dd3f84ba155229b8fcb063822
parentcd4eb2e9407321888234cceabd957d3168c724d9 (diff)
[NET]: Make sure that class selected by priority is a leaf in HTB scheduler.
-rw-r--r--net/sched/sch_htb.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index a3216cc06c55..5743406b75cf 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -74,7 +74,7 @@
#define HTB_HYSTERESIS 1/* whether to use mode hysteresis for speedup */
#define HTB_QLOCK(S) spin_lock_bh(&(S)->dev->queue_lock)
#define HTB_QUNLOCK(S) spin_unlock_bh(&(S)->dev->queue_lock)
-#define HTB_VER 0x3000e /* major must be matched with number suplied by TC as version */
+#define HTB_VER 0x3000f /* major must be matched with number suplied by TC as version */
#if HTB_VER >> 16 != TC_HTB_PROTOVER
#error "Mismatched sch_htb.c and pkt_sch.h"
@@ -308,7 +308,7 @@ static struct htb_class *htb_classify(struct sk_buff *skb, struct Qdisc *sch)
rules in it */
if (skb->priority == sch->handle)
return HTB_DIRECT; /* X:0 (direct flow) selected */
- if ((cl = htb_find(skb->priority,sch)) != NULL)
+ if ((cl = htb_find(skb->priority,sch)) != NULL && cl->level == 0)
return cl;
tcf = q->filter_list;