Explorar o código

kernel: make sched_act_connmark compile for 3.14

The upstream API changed, which allowed to simplify the code a bit.

Signed-off-by: Jonas Gorski <[email protected]>

SVN-Revision: 40376
Jonas Gorski %!s(int64=11) %!d(string=hai) anos
pai
achega
a8363fadcd
Modificáronse 1 ficheiros con 11 adicións e 15 borrados
  1. 11 15
      target/linux/generic/patches-3.14/621-sched_act_connmark.patch

+ 11 - 15
target/linux/generic/patches-3.14/621-sched_act_connmark.patch

@@ -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 <[email protected]>
 + *
@@ -36,15 +36,8 @@
 +#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)
@@ -88,10 +81,9 @@
 +	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);
 +
@@ -124,13 +116,11 @@
 +	.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 <[email protected]>");
@@ -139,6 +129,12 @@
 +
 +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);
 +}
 +