pkt_sched: sch_htb: Optimize WARN_ONs in htb_dequeue_tree() etc.
Subsystems (3)
PATCH 6/6 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 <[email protected]>
--- net/sched/sch_htb.c | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-)
net/sched/sch_htb.c +5 -5
@@ -730,7 +730,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;
@@ -750,9 +750,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 {
@@ -783,8 +784,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
Signature · 1 line
1.5.6.5