From: Jarek Poplawski Date: Wed, 10 Dec 2008 06:34:40 +0000 (-0800) Subject: pkt_sched: sch_htb: Optimize htb_find_next_upper() X-Git-Tag: v2.6.29-rc1~581^2~271 X-Git-Url: http://ftp.safe.ca/?a=commitdiff_plain;ds=sidebyside;h=1b5c0077e1615bb16e777a10ec1fc1195ba059ac;p=safe%2Fjmp%2Flinux-2.6 pkt_sched: sch_htb: Optimize htb_find_next_upper() htb_id_find_next_upper() is usually called to find a class with next id after some previously removed class, so let's move a check for equality to the end: it's the least likely here. Signed-off-by: Jarek Poplawski Signed-off-by: David S. Miller --- diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c index f89fd71..b820a0a 100644 --- a/net/sched/sch_htb.c +++ b/net/sched/sch_htb.c @@ -698,14 +698,14 @@ static struct rb_node *htb_id_find_next_upper(int prio, struct rb_node *n, while (n) { struct htb_class *cl = rb_entry(n, struct htb_class, node[prio]); - if (id == cl->common.classid) - return n; if (id > cl->common.classid) { n = n->rb_right; - } else { + } else if (id < cl->common.classid) { r = n; n = n->rb_left; + } else { + return n; } } return r;