ipv6: mld: fix add_grhead skb_over_panic for devs with large MTUs
[pandora-kernel.git] / net / sched / act_ipt.c
index 60f8f61..57827bf 100644 (file)
@@ -8,7 +8,7 @@
  *             as published by the Free Software Foundation; either version
  *             2 of the License, or (at your option) any later version.
  *
- * Copyright:  Jamal Hadi Salim (2002-4)
+ * Copyright:  Jamal Hadi Salim (2002-13)
  */
 
 #include <linux/types.h>
@@ -299,17 +299,44 @@ static struct tc_action_ops act_ipt_ops = {
        .walk           =       tcf_generic_walker
 };
 
-MODULE_AUTHOR("Jamal Hadi Salim(2002-4)");
+static struct tc_action_ops act_xt_ops = {
+       .kind           =       "xt",
+       .hinfo          =       &ipt_hash_info,
+       .type           =       TCA_ACT_IPT,
+       .capab          =       TCA_CAP_NONE,
+       .owner          =       THIS_MODULE,
+       .act            =       tcf_ipt,
+       .dump           =       tcf_ipt_dump,
+       .cleanup        =       tcf_ipt_cleanup,
+       .lookup         =       tcf_hash_search,
+       .init           =       tcf_ipt_init,
+       .walk           =       tcf_generic_walker
+};
+
+MODULE_AUTHOR("Jamal Hadi Salim(2002-13)");
 MODULE_DESCRIPTION("Iptables target actions");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("act_xt");
 
 static int __init ipt_init_module(void)
 {
-       return tcf_register_action(&act_ipt_ops);
+       int ret1, ret2;
+       ret1 = tcf_register_action(&act_xt_ops);
+       if (ret1 < 0)
+               printk("Failed to load xt action\n");
+       ret2 = tcf_register_action(&act_ipt_ops);
+       if (ret2 < 0)
+               printk("Failed to load ipt action\n");
+
+       if (ret1 < 0 && ret2 < 0)
+               return ret1;
+       else
+               return 0;
 }
 
 static void __exit ipt_cleanup_module(void)
 {
+       tcf_unregister_action(&act_xt_ops);
        tcf_unregister_action(&act_ipt_ops);
 }