Skip to content

Commit

Permalink
[PKT_SCHED] dsmark: Use hweight32() instead of convoluted loop.
Browse files Browse the repository at this point in the history
Based upon a patch by Stephen Hemminger and suggestions
from Patrick McHardy.

Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
davem330 committed Jan 28, 2008
1 parent 81da99e commit 5b0ac72
Showing 1 changed file with 3 additions and 12 deletions.
15 changes: 3 additions & 12 deletions net/sched/sch_dsmark.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <linux/errno.h>
#include <linux/skbuff.h>
#include <linux/rtnetlink.h>
#include <linux/bitops.h>
#include <net/pkt_sched.h>
#include <net/dsfield.h>
#include <net/inet_ecn.h>
Expand Down Expand Up @@ -43,17 +44,6 @@ struct dsmark_qdisc_data {
int set_tc_index;
};

static inline int dsmark_valid_indices(u16 indices)
{
while (indices != 1) {
if (indices & 1)
return 0;
indices >>= 1;
}

return 1;
}

static inline int dsmark_valid_index(struct dsmark_qdisc_data *p, u16 index)
{
return (index <= p->indices && index > 0);
Expand Down Expand Up @@ -348,7 +338,8 @@ static int dsmark_init(struct Qdisc *sch, struct rtattr *opt)
goto errout;

indices = RTA_GET_U16(tb[TCA_DSMARK_INDICES-1]);
if (!indices || !dsmark_valid_indices(indices))

if (hweight32(indices) != 1)
goto errout;

if (tb[TCA_DSMARK_DEFAULT_INDEX-1])
Expand Down

0 comments on commit 5b0ac72

Please sign in to comment.