kernel: make sched_act_connmark compile for 3.14
authorJonas Gorski <jogo@openwrt.org>
Fri, 4 Apr 2014 10:16:49 +0000 (10:16 +0000)
committerJonas Gorski <jogo@openwrt.org>
Fri, 4 Apr 2014 10:16:49 +0000 (10:16 +0000)
The upstream API changed, which allowed to simplify the code a bit.

Signed-off-by: Jonas Gorski <jogo@openwrt.org>
SVN-Revision: 40376

target/linux/generic/patches-3.14/621-sched_act_connmark.patch

index 00aa21ae768bdc446114a37110dd027b39d3bac3..d8ca6666b8dfee805e1562e713b05d02430058b6 100644 (file)
@@ -1,6 +1,6 @@
 --- /dev/null
 +++ b/net/sched/act_connmark.c
-@@ -0,0 +1,148 @@
+@@ -0,0 +1,144 @@
 +/*
 + * Copyright (c) 2011 Felix Fietkau <nbd@openwrt.org>
 + *
 +#define TCA_ACT_CONNMARK      20
 +
 +#define CONNMARK_TAB_MASK     3
-+static struct tcf_common *tcf_connmark_ht[CONNMARK_TAB_MASK + 1];
-+static u32 connmark_idx_gen;
-+static DEFINE_RWLOCK(connmark_lock);
-+
-+static struct tcf_hashinfo connmark_hash_info = {
-+      .htab   =       tcf_connmark_ht,
-+      .hmask  =       CONNMARK_TAB_MASK,
-+      .lock   =       &connmark_lock,
-+};
++
++static struct tcf_hashinfo connmark_hash_info;
 +
 +static int tcf_connmark(struct sk_buff *skb, const struct tc_action *a,
 +                     struct tcf_result *res)
 +      struct tcf_common *pc;
 +      int ret = 0;
 +
-+      pc = tcf_hash_check(0, a, bind, &connmark_hash_info);
++      pc = tcf_hash_check(0, a, bind);
 +      if (!pc) {
-+              pc = tcf_hash_create(0, est, a, sizeof(*pc), bind,
-+                                   &connmark_idx_gen, &connmark_hash_info);
++              pc = tcf_hash_create(0, est, a, sizeof(*pc), bind);
 +              if (IS_ERR(pc))
 +                  return PTR_ERR(pc);
 +
 +      .kind           =       "connmark",
 +      .hinfo          =       &connmark_hash_info,
 +      .type           =       TCA_ACT_CONNMARK,
-+      .capab          =       TCA_CAP_NONE,
 +      .owner          =       THIS_MODULE,
 +      .act            =       tcf_connmark,
 +      .dump           =       tcf_connmark_dump,
 +      .cleanup        =       tcf_connmark_cleanup,
 +      .init           =       tcf_connmark_init,
-+      .walk           =       tcf_generic_walker,
 +};
 +
 +MODULE_AUTHOR("Felix Fietkau <nbd@openwrt.org>");
 +
 +static int __init connmark_init_module(void)
 +{
++      int ret;
++
++      ret = tcf_hashinfo_init(&connmark_hash_info, CONNMARK_TAB_MASK);
++      if (ret)
++              return ret;
++
 +      return tcf_register_action(&act_connmark_ops);
 +}
 +