Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / net / sched / act_api.c
index a2587b5..eb7dc29 100644 (file)
@@ -14,6 +14,7 @@
 #include <asm/uaccess.h>
 #include <asm/system.h>
 #include <linux/bitops.h>
+#include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/sched.h>
@@ -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;
 }