On Thu, Nov 08, 2007 at 01:07:47PM +0200, Radu Rendec wrote: > Computing the rank of the first set bit in the hash mask (for using later > in u32_hash_fold()) was done with plain C code. Using ffs() instead makes > the code more readable and improves performance (since ffs() is better > optimized in assembler). > > Using the conditional operator on hash mask before applying ntohl() also > saves one ntohl() call if mask is 0. > > Signed-off-by: Radu Rendec <[EMAIL PROTECTED]>
Signed-off-by: Jarek Poplawski <[EMAIL PROTECTED]> > --- > net/sched/cls_u32.c | 12 +----------- > 1 files changed, 1 insertions(+), 11 deletions(-) > > diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c > index 5317102..c390082 100644 > --- a/net/sched/cls_u32.c > +++ b/net/sched/cls_u32.c > @@ -613,17 +613,7 @@ static int u32_change(struct tcf_proto *tp, unsigned > long base, u32 handle, > memcpy(&n->sel, s, sizeof(*s) + s->nkeys*sizeof(struct tc_u32_key)); > n->ht_up = ht; > n->handle = handle; > -{ > - u8 i = 0; > - u32 mask = ntohl(s->hmask); > - if (mask) { > - while (!(mask & 1)) { > - i++; > - mask>>=1; > - } > - } > - n->fshift = i; > -} > + n->fshift = s->hmask ? ffs(ntohl(s->hmask)) - 1 : 0; > > #ifdef CONFIG_CLS_U32_MARK > if (tb[TCA_U32_MARK-1]) { > -- > 1.5.3.2 > - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html