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 <jogo@openwrt.org> SVN-Revision: 40376
This commit is contained in:
		
							parent
							
								
									96c4e3eed0
								
							
						
					
					
						commit
						a8363fadcd
					
				@ -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>
 | 
			
		||||
+ *
 | 
			
		||||
@ -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 <nbd@openwrt.org>");
 | 
			
		||||
@ -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);
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user