diff options
author | Jarek Poplawski <jarkao2@gmail.com> | 2008-12-10 07:35:02 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-12-10 07:35:02 +0100 |
commit | 512bb43eb5422ee69a1be05ea0d89dc074fac9a2 (patch) | |
tree | 8d38219eff87fbf684fb168cc0d32647e8037f98 /net | |
parent | pkt_sched: sch_htb: Optimize htb_find_next_upper() (diff) | |
download | linux-512bb43eb5422ee69a1be05ea0d89dc074fac9a2.tar.xz linux-512bb43eb5422ee69a1be05ea0d89dc074fac9a2.zip |
pkt_sched: sch_htb: Optimize WARN_ONs in htb_dequeue_tree() etc.
We can skip WARN_ON() in htb_dequeue_tree() because there should be
always a similar warning from htb_lookup_leaf() earlier.
The first WARN_ON() in in htb_lookup_leaf() is changed to BUG_ON()
because most likly this should end with oops anyway.
Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/sched/sch_htb.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c index b820a0ae7355..5070643ce534 100644 --- a/net/sched/sch_htb.c +++ b/net/sched/sch_htb.c @@ -726,7 +726,7 @@ static struct htb_class *htb_lookup_leaf(struct rb_root *tree, int prio, u32 *pid; } stk[TC_HTB_MAXDEPTH], *sp = stk; - WARN_ON(!tree->rb_node); + BUG_ON(!tree->rb_node); sp->root = tree->rb_node; sp->pptr = pptr; sp->pid = pid; @@ -746,9 +746,10 @@ static struct htb_class *htb_lookup_leaf(struct rb_root *tree, int prio, *sp->pptr = (*sp->pptr)->rb_left; if (sp > stk) { sp--; - WARN_ON(!*sp->pptr); - if (!*sp->pptr) + if (!*sp->pptr) { + WARN_ON(1); return NULL; + } htb_next_rb_node(sp->pptr); } } else { @@ -779,8 +780,7 @@ static struct sk_buff *htb_dequeue_tree(struct htb_sched *q, int prio, do { next: - WARN_ON(!cl); - if (!cl) + if (unlikely(!cl)) return NULL; /* class can be empty - it is unlikely but can be true if leaf |