X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=net%2Fsched%2Fact_api.c;h=eb7dc2947a0a2212eac81dfbd320d1c20179548f;hb=9464c7cf61b9433057924c36e6e02f303a00e768;hp=a2587b52e531d7284bb85078d9d3c783a4f5dde2;hpb=41689045f6a3cbe0550e1d34e9cc20d2e8c432ba;p=linux-2.6.git diff --git a/net/sched/act_api.c b/net/sched/act_api.c index a2587b52e..eb7dc2947 100644 --- a/net/sched/act_api.c +++ b/net/sched/act_api.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -312,9 +313,10 @@ struct tc_action *tcf_action_init_1(struct rtattr *rta, struct rtattr *est, } *err = -ENOMEM; - a = kzalloc(sizeof(*a), GFP_KERNEL); + a = kmalloc(sizeof(*a), GFP_KERNEL); if (a == NULL) goto err_mod; + memset(a, 0, sizeof(*a)); /* backward compatibility for policer */ if (name == NULL) @@ -491,9 +493,10 @@ tcf_action_get_1(struct rtattr *rta, struct nlmsghdr *n, u32 pid, int *err) index = *(int *)RTA_DATA(tb[TCA_ACT_INDEX - 1]); *err = -ENOMEM; - a = kzalloc(sizeof(struct tc_action), GFP_KERNEL); + a = kmalloc(sizeof(struct tc_action), GFP_KERNEL); if (a == NULL) return NULL; + memset(a, 0, sizeof(struct tc_action)); *err = -EINVAL; a->ops = tc_lookup_action(tb[TCA_ACT_KIND - 1]); @@ -529,11 +532,12 @@ static struct tc_action *create_a(int i) { struct tc_action *act; - act = kzalloc(sizeof(*act), GFP_KERNEL); + act = kmalloc(sizeof(*act), GFP_KERNEL); if (act == NULL) { printk("create_a: failed to alloc!\n"); return NULL; } + memset(act, 0, sizeof(*act)); act->order = i; return act; } @@ -599,8 +603,8 @@ static int tca_action_flush(struct rtattr *rta, struct nlmsghdr *n, u32 pid) return err; rtattr_failure: -nlmsg_failure: module_put(a->ops->owner); +nlmsg_failure: err_out: kfree_skb(skb); kfree(a); @@ -881,6 +885,8 @@ static int __init tc_action_init(void) link_p[RTM_GETACTION-RTM_BASE].dumpit = tc_dump_action; } + printk("TC classifier action (bugs to netdev@vger.kernel.org cc " + "hadi@cyberus.ca)\n"); return 0; }