net_sched: use void pointer for filter handle
Now we use 'unsigned long fh' as a pointer in every place, it is safe to convert it to a void pointer now. This gets rid of many casts to pointer. Cc: Jamal Hadi Salim <jhs@mojatatu.com> Cc: Jiri Pirko <jiri@resnulli.us> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
54df2cf819
commit
8113c09567
@@ -216,7 +216,7 @@ static inline u32 from_hash(u32 id)
|
||||
return 16 + (id & 0xF);
|
||||
}
|
||||
|
||||
static unsigned long route4_get(struct tcf_proto *tp, u32 handle)
|
||||
static void *route4_get(struct tcf_proto *tp, u32 handle)
|
||||
{
|
||||
struct route4_head *head = rtnl_dereference(tp->root);
|
||||
struct route4_bucket *b;
|
||||
@@ -225,11 +225,11 @@ static unsigned long route4_get(struct tcf_proto *tp, u32 handle)
|
||||
|
||||
h1 = to_hash(handle);
|
||||
if (h1 > 256)
|
||||
return 0;
|
||||
return NULL;
|
||||
|
||||
h2 = from_hash(handle >> 16);
|
||||
if (h2 > 32)
|
||||
return 0;
|
||||
return NULL;
|
||||
|
||||
b = rtnl_dereference(head->table[h1]);
|
||||
if (b) {
|
||||
@@ -237,9 +237,9 @@ static unsigned long route4_get(struct tcf_proto *tp, u32 handle)
|
||||
f;
|
||||
f = rtnl_dereference(f->next))
|
||||
if (f->handle == handle)
|
||||
return (unsigned long)f;
|
||||
return f;
|
||||
}
|
||||
return 0;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static int route4_init(struct tcf_proto *tp)
|
||||
@@ -294,10 +294,10 @@ static void route4_destroy(struct tcf_proto *tp)
|
||||
kfree_rcu(head, rcu);
|
||||
}
|
||||
|
||||
static int route4_delete(struct tcf_proto *tp, unsigned long arg, bool *last)
|
||||
static int route4_delete(struct tcf_proto *tp, void *arg, bool *last)
|
||||
{
|
||||
struct route4_head *head = rtnl_dereference(tp->root);
|
||||
struct route4_filter *f = (struct route4_filter *)arg;
|
||||
struct route4_filter *f = arg;
|
||||
struct route4_filter __rcu **fp;
|
||||
struct route4_filter *nf;
|
||||
struct route4_bucket *b;
|
||||
@@ -448,7 +448,7 @@ static int route4_set_parms(struct net *net, struct tcf_proto *tp,
|
||||
|
||||
static int route4_change(struct net *net, struct sk_buff *in_skb,
|
||||
struct tcf_proto *tp, unsigned long base, u32 handle,
|
||||
struct nlattr **tca, unsigned long *arg, bool ovr)
|
||||
struct nlattr **tca, void **arg, bool ovr)
|
||||
{
|
||||
struct route4_head *head = rtnl_dereference(tp->root);
|
||||
struct route4_filter __rcu **fp;
|
||||
@@ -467,7 +467,7 @@ static int route4_change(struct net *net, struct sk_buff *in_skb,
|
||||
if (err < 0)
|
||||
return err;
|
||||
|
||||
fold = (struct route4_filter *)*arg;
|
||||
fold = *arg;
|
||||
if (fold && handle && fold->handle != handle)
|
||||
return -EINVAL;
|
||||
|
||||
@@ -525,7 +525,7 @@ static int route4_change(struct net *net, struct sk_buff *in_skb,
|
||||
}
|
||||
|
||||
route4_reset_fastmap(head);
|
||||
*arg = (unsigned long)f;
|
||||
*arg = f;
|
||||
if (fold) {
|
||||
tcf_unbind_filter(tp, &fold->res);
|
||||
call_rcu(&fold->rcu, route4_delete_filter);
|
||||
@@ -564,7 +564,7 @@ static void route4_walk(struct tcf_proto *tp, struct tcf_walker *arg)
|
||||
arg->count++;
|
||||
continue;
|
||||
}
|
||||
if (arg->fn(tp, (unsigned long)f, arg) < 0) {
|
||||
if (arg->fn(tp, f, arg) < 0) {
|
||||
arg->stop = 1;
|
||||
return;
|
||||
}
|
||||
@@ -575,10 +575,10 @@ static void route4_walk(struct tcf_proto *tp, struct tcf_walker *arg)
|
||||
}
|
||||
}
|
||||
|
||||
static int route4_dump(struct net *net, struct tcf_proto *tp, unsigned long fh,
|
||||
static int route4_dump(struct net *net, struct tcf_proto *tp, void *fh,
|
||||
struct sk_buff *skb, struct tcmsg *t)
|
||||
{
|
||||
struct route4_filter *f = (struct route4_filter *)fh;
|
||||
struct route4_filter *f = fh;
|
||||
struct nlattr *nest;
|
||||
u32 id;
|
||||
|
||||
|
Reference in New Issue
Block a user