net_sched: cleanups
Cleanup net/sched code to current CodingStyle and practices. Reduce inline abuse Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
7180a03118
commit
cc7ec456f8
@@ -66,28 +66,25 @@
|
||||
powerful classification engine. */
|
||||
|
||||
|
||||
struct rsvp_head
|
||||
{
|
||||
struct rsvp_head {
|
||||
u32 tmap[256/32];
|
||||
u32 hgenerator;
|
||||
u8 tgenerator;
|
||||
struct rsvp_session *ht[256];
|
||||
};
|
||||
|
||||
struct rsvp_session
|
||||
{
|
||||
struct rsvp_session {
|
||||
struct rsvp_session *next;
|
||||
__be32 dst[RSVP_DST_LEN];
|
||||
struct tc_rsvp_gpi dpi;
|
||||
u8 protocol;
|
||||
u8 tunnelid;
|
||||
/* 16 (src,sport) hash slots, and one wildcard source slot */
|
||||
struct rsvp_filter *ht[16+1];
|
||||
struct rsvp_filter *ht[16 + 1];
|
||||
};
|
||||
|
||||
|
||||
struct rsvp_filter
|
||||
{
|
||||
struct rsvp_filter {
|
||||
struct rsvp_filter *next;
|
||||
__be32 src[RSVP_DST_LEN];
|
||||
struct tc_rsvp_gpi spi;
|
||||
@@ -100,17 +97,19 @@ struct rsvp_filter
|
||||
struct rsvp_session *sess;
|
||||
};
|
||||
|
||||
static __inline__ unsigned hash_dst(__be32 *dst, u8 protocol, u8 tunnelid)
|
||||
static inline unsigned int hash_dst(__be32 *dst, u8 protocol, u8 tunnelid)
|
||||
{
|
||||
unsigned h = (__force __u32)dst[RSVP_DST_LEN-1];
|
||||
unsigned int h = (__force __u32)dst[RSVP_DST_LEN - 1];
|
||||
|
||||
h ^= h>>16;
|
||||
h ^= h>>8;
|
||||
return (h ^ protocol ^ tunnelid) & 0xFF;
|
||||
}
|
||||
|
||||
static __inline__ unsigned hash_src(__be32 *src)
|
||||
static inline unsigned int hash_src(__be32 *src)
|
||||
{
|
||||
unsigned h = (__force __u32)src[RSVP_DST_LEN-1];
|
||||
unsigned int h = (__force __u32)src[RSVP_DST_LEN-1];
|
||||
|
||||
h ^= h>>16;
|
||||
h ^= h>>8;
|
||||
h ^= h>>4;
|
||||
@@ -134,10 +133,10 @@ static struct tcf_ext_map rsvp_ext_map = {
|
||||
static int rsvp_classify(struct sk_buff *skb, struct tcf_proto *tp,
|
||||
struct tcf_result *res)
|
||||
{
|
||||
struct rsvp_session **sht = ((struct rsvp_head*)tp->root)->ht;
|
||||
struct rsvp_session **sht = ((struct rsvp_head *)tp->root)->ht;
|
||||
struct rsvp_session *s;
|
||||
struct rsvp_filter *f;
|
||||
unsigned h1, h2;
|
||||
unsigned int h1, h2;
|
||||
__be32 *dst, *src;
|
||||
u8 protocol;
|
||||
u8 tunnelid = 0;
|
||||
@@ -162,13 +161,13 @@ restart:
|
||||
src = &nhptr->saddr.s6_addr32[0];
|
||||
dst = &nhptr->daddr.s6_addr32[0];
|
||||
protocol = nhptr->nexthdr;
|
||||
xprt = ((u8*)nhptr) + sizeof(struct ipv6hdr);
|
||||
xprt = ((u8 *)nhptr) + sizeof(struct ipv6hdr);
|
||||
#else
|
||||
src = &nhptr->saddr;
|
||||
dst = &nhptr->daddr;
|
||||
protocol = nhptr->protocol;
|
||||
xprt = ((u8*)nhptr) + (nhptr->ihl<<2);
|
||||
if (nhptr->frag_off & htons(IP_MF|IP_OFFSET))
|
||||
xprt = ((u8 *)nhptr) + (nhptr->ihl<<2);
|
||||
if (nhptr->frag_off & htons(IP_MF | IP_OFFSET))
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
@@ -176,10 +175,10 @@ restart:
|
||||
h2 = hash_src(src);
|
||||
|
||||
for (s = sht[h1]; s; s = s->next) {
|
||||
if (dst[RSVP_DST_LEN-1] == s->dst[RSVP_DST_LEN-1] &&
|
||||
if (dst[RSVP_DST_LEN-1] == s->dst[RSVP_DST_LEN - 1] &&
|
||||
protocol == s->protocol &&
|
||||
!(s->dpi.mask &
|
||||
(*(u32*)(xprt+s->dpi.offset)^s->dpi.key)) &&
|
||||
(*(u32 *)(xprt + s->dpi.offset) ^ s->dpi.key)) &&
|
||||
#if RSVP_DST_LEN == 4
|
||||
dst[0] == s->dst[0] &&
|
||||
dst[1] == s->dst[1] &&
|
||||
@@ -188,8 +187,8 @@ restart:
|
||||
tunnelid == s->tunnelid) {
|
||||
|
||||
for (f = s->ht[h2]; f; f = f->next) {
|
||||
if (src[RSVP_DST_LEN-1] == f->src[RSVP_DST_LEN-1] &&
|
||||
!(f->spi.mask & (*(u32*)(xprt+f->spi.offset)^f->spi.key))
|
||||
if (src[RSVP_DST_LEN-1] == f->src[RSVP_DST_LEN - 1] &&
|
||||
!(f->spi.mask & (*(u32 *)(xprt + f->spi.offset) ^ f->spi.key))
|
||||
#if RSVP_DST_LEN == 4
|
||||
&&
|
||||
src[0] == f->src[0] &&
|
||||
@@ -205,7 +204,7 @@ matched:
|
||||
return 0;
|
||||
|
||||
tunnelid = f->res.classid;
|
||||
nhptr = (void*)(xprt + f->tunnelhdr - sizeof(*nhptr));
|
||||
nhptr = (void *)(xprt + f->tunnelhdr - sizeof(*nhptr));
|
||||
goto restart;
|
||||
}
|
||||
}
|
||||
@@ -224,11 +223,11 @@ matched:
|
||||
|
||||
static unsigned long rsvp_get(struct tcf_proto *tp, u32 handle)
|
||||
{
|
||||
struct rsvp_session **sht = ((struct rsvp_head*)tp->root)->ht;
|
||||
struct rsvp_session **sht = ((struct rsvp_head *)tp->root)->ht;
|
||||
struct rsvp_session *s;
|
||||
struct rsvp_filter *f;
|
||||
unsigned h1 = handle&0xFF;
|
||||
unsigned h2 = (handle>>8)&0xFF;
|
||||
unsigned int h1 = handle & 0xFF;
|
||||
unsigned int h2 = (handle >> 8) & 0xFF;
|
||||
|
||||
if (h2 > 16)
|
||||
return 0;
|
||||
@@ -258,7 +257,7 @@ static int rsvp_init(struct tcf_proto *tp)
|
||||
return -ENOBUFS;
|
||||
}
|
||||
|
||||
static inline void
|
||||
static void
|
||||
rsvp_delete_filter(struct tcf_proto *tp, struct rsvp_filter *f)
|
||||
{
|
||||
tcf_unbind_filter(tp, &f->res);
|
||||
@@ -277,13 +276,13 @@ static void rsvp_destroy(struct tcf_proto *tp)
|
||||
|
||||
sht = data->ht;
|
||||
|
||||
for (h1=0; h1<256; h1++) {
|
||||
for (h1 = 0; h1 < 256; h1++) {
|
||||
struct rsvp_session *s;
|
||||
|
||||
while ((s = sht[h1]) != NULL) {
|
||||
sht[h1] = s->next;
|
||||
|
||||
for (h2=0; h2<=16; h2++) {
|
||||
for (h2 = 0; h2 <= 16; h2++) {
|
||||
struct rsvp_filter *f;
|
||||
|
||||
while ((f = s->ht[h2]) != NULL) {
|
||||
@@ -299,13 +298,13 @@ static void rsvp_destroy(struct tcf_proto *tp)
|
||||
|
||||
static int rsvp_delete(struct tcf_proto *tp, unsigned long arg)
|
||||
{
|
||||
struct rsvp_filter **fp, *f = (struct rsvp_filter*)arg;
|
||||
unsigned h = f->handle;
|
||||
struct rsvp_filter **fp, *f = (struct rsvp_filter *)arg;
|
||||
unsigned int h = f->handle;
|
||||
struct rsvp_session **sp;
|
||||
struct rsvp_session *s = f->sess;
|
||||
int i;
|
||||
|
||||
for (fp = &s->ht[(h>>8)&0xFF]; *fp; fp = &(*fp)->next) {
|
||||
for (fp = &s->ht[(h >> 8) & 0xFF]; *fp; fp = &(*fp)->next) {
|
||||
if (*fp == f) {
|
||||
tcf_tree_lock(tp);
|
||||
*fp = f->next;
|
||||
@@ -314,12 +313,12 @@ static int rsvp_delete(struct tcf_proto *tp, unsigned long arg)
|
||||
|
||||
/* Strip tree */
|
||||
|
||||
for (i=0; i<=16; i++)
|
||||
for (i = 0; i <= 16; i++)
|
||||
if (s->ht[i])
|
||||
return 0;
|
||||
|
||||
/* OK, session has no flows */
|
||||
for (sp = &((struct rsvp_head*)tp->root)->ht[h&0xFF];
|
||||
for (sp = &((struct rsvp_head *)tp->root)->ht[h & 0xFF];
|
||||
*sp; sp = &(*sp)->next) {
|
||||
if (*sp == s) {
|
||||
tcf_tree_lock(tp);
|
||||
@@ -337,13 +336,14 @@ static int rsvp_delete(struct tcf_proto *tp, unsigned long arg)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static unsigned gen_handle(struct tcf_proto *tp, unsigned salt)
|
||||
static unsigned int gen_handle(struct tcf_proto *tp, unsigned salt)
|
||||
{
|
||||
struct rsvp_head *data = tp->root;
|
||||
int i = 0xFFFF;
|
||||
|
||||
while (i-- > 0) {
|
||||
u32 h;
|
||||
|
||||
if ((data->hgenerator += 0x10000) == 0)
|
||||
data->hgenerator = 0x10000;
|
||||
h = data->hgenerator|salt;
|
||||
@@ -355,10 +355,10 @@ static unsigned gen_handle(struct tcf_proto *tp, unsigned salt)
|
||||
|
||||
static int tunnel_bts(struct rsvp_head *data)
|
||||
{
|
||||
int n = data->tgenerator>>5;
|
||||
u32 b = 1<<(data->tgenerator&0x1F);
|
||||
int n = data->tgenerator >> 5;
|
||||
u32 b = 1 << (data->tgenerator & 0x1F);
|
||||
|
||||
if (data->tmap[n]&b)
|
||||
if (data->tmap[n] & b)
|
||||
return 0;
|
||||
data->tmap[n] |= b;
|
||||
return 1;
|
||||
@@ -372,10 +372,10 @@ static void tunnel_recycle(struct rsvp_head *data)
|
||||
|
||||
memset(tmap, 0, sizeof(tmap));
|
||||
|
||||
for (h1=0; h1<256; h1++) {
|
||||
for (h1 = 0; h1 < 256; h1++) {
|
||||
struct rsvp_session *s;
|
||||
for (s = sht[h1]; s; s = s->next) {
|
||||
for (h2=0; h2<=16; h2++) {
|
||||
for (h2 = 0; h2 <= 16; h2++) {
|
||||
struct rsvp_filter *f;
|
||||
|
||||
for (f = s->ht[h2]; f; f = f->next) {
|
||||
@@ -395,8 +395,8 @@ static u32 gen_tunnel(struct rsvp_head *data)
|
||||
{
|
||||
int i, k;
|
||||
|
||||
for (k=0; k<2; k++) {
|
||||
for (i=255; i>0; i--) {
|
||||
for (k = 0; k < 2; k++) {
|
||||
for (i = 255; i > 0; i--) {
|
||||
if (++data->tgenerator == 0)
|
||||
data->tgenerator = 1;
|
||||
if (tunnel_bts(data))
|
||||
@@ -428,7 +428,7 @@ static int rsvp_change(struct tcf_proto *tp, unsigned long base,
|
||||
struct nlattr *opt = tca[TCA_OPTIONS-1];
|
||||
struct nlattr *tb[TCA_RSVP_MAX + 1];
|
||||
struct tcf_exts e;
|
||||
unsigned h1, h2;
|
||||
unsigned int h1, h2;
|
||||
__be32 *dst;
|
||||
int err;
|
||||
|
||||
@@ -443,7 +443,8 @@ static int rsvp_change(struct tcf_proto *tp, unsigned long base,
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
if ((f = (struct rsvp_filter*)*arg) != NULL) {
|
||||
f = (struct rsvp_filter *)*arg;
|
||||
if (f) {
|
||||
/* Node exists: adjust only classid */
|
||||
|
||||
if (f->handle != handle && handle)
|
||||
@@ -500,7 +501,7 @@ static int rsvp_change(struct tcf_proto *tp, unsigned long base,
|
||||
goto errout;
|
||||
}
|
||||
|
||||
for (sp = &data->ht[h1]; (s=*sp) != NULL; sp = &s->next) {
|
||||
for (sp = &data->ht[h1]; (s = *sp) != NULL; sp = &s->next) {
|
||||
if (dst[RSVP_DST_LEN-1] == s->dst[RSVP_DST_LEN-1] &&
|
||||
pinfo && pinfo->protocol == s->protocol &&
|
||||
memcmp(&pinfo->dpi, &s->dpi, sizeof(s->dpi)) == 0 &&
|
||||
@@ -523,7 +524,7 @@ insert:
|
||||
tcf_exts_change(tp, &f->exts, &e);
|
||||
|
||||
for (fp = &s->ht[h2]; *fp; fp = &(*fp)->next)
|
||||
if (((*fp)->spi.mask&f->spi.mask) != f->spi.mask)
|
||||
if (((*fp)->spi.mask & f->spi.mask) != f->spi.mask)
|
||||
break;
|
||||
f->next = *fp;
|
||||
wmb();
|
||||
@@ -567,7 +568,7 @@ errout2:
|
||||
static void rsvp_walk(struct tcf_proto *tp, struct tcf_walker *arg)
|
||||
{
|
||||
struct rsvp_head *head = tp->root;
|
||||
unsigned h, h1;
|
||||
unsigned int h, h1;
|
||||
|
||||
if (arg->stop)
|
||||
return;
|
||||
@@ -598,7 +599,7 @@ static void rsvp_walk(struct tcf_proto *tp, struct tcf_walker *arg)
|
||||
static int rsvp_dump(struct tcf_proto *tp, unsigned long fh,
|
||||
struct sk_buff *skb, struct tcmsg *t)
|
||||
{
|
||||
struct rsvp_filter *f = (struct rsvp_filter*)fh;
|
||||
struct rsvp_filter *f = (struct rsvp_filter *)fh;
|
||||
struct rsvp_session *s;
|
||||
unsigned char *b = skb_tail_pointer(skb);
|
||||
struct nlattr *nest;
|
||||
@@ -624,7 +625,7 @@ static int rsvp_dump(struct tcf_proto *tp, unsigned long fh,
|
||||
NLA_PUT(skb, TCA_RSVP_PINFO, sizeof(pinfo), &pinfo);
|
||||
if (f->res.classid)
|
||||
NLA_PUT_U32(skb, TCA_RSVP_CLASSID, f->res.classid);
|
||||
if (((f->handle>>8)&0xFF) != 16)
|
||||
if (((f->handle >> 8) & 0xFF) != 16)
|
||||
NLA_PUT(skb, TCA_RSVP_SRC, sizeof(f->src), f->src);
|
||||
|
||||
if (tcf_exts_dump(skb, &f->exts, &rsvp_ext_map) < 0)
|
||||
|
Reference in New Issue
Block a user