aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/pkt_cls.h
diff options
context:
space:
mode:
authorBenjamin LaHaise <bcrl@kvack.org>2013-01-14 00:15:39 -0500
committerDavid S. Miller <davem@davemloft.net>2013-01-14 15:09:36 -0500
commitc1b52739e45f5969b208ebc377f52468280af11e (patch)
tree313ee0c665f27b7d3ea31c8984879930f1de7021 /include/net/pkt_cls.h
parent605928337866c6369ae60509fa2b10af325a25eb (diff)
pkt_sched: namespace aware act_mirred
Eric Dumazet pointed out that act_mirred needs to find the current net_ns, and struct net pointer is not provided in the call chain. His original patch made use of current->nsproxy->net_ns to find the network namespace, but this fails to work correctly for userspace code that makes use of netlink sockets in different network namespaces. Instead, pass the "struct net *" down along the call chain to where it is needed. This version removes the ifb changes as Eric has submitted that patch separately, but is otherwise identical to the previous version. Signed-off-by: Benjamin LaHaise <bcrl@kvack.org> Tested-by: Eric Dumazet <eric.dumazet@gmail.com> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/pkt_cls.h')
-rw-r--r--include/net/pkt_cls.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/include/net/pkt_cls.h b/include/net/pkt_cls.h
index 9fcc680ab6b9..13174509cdfd 100644
--- a/include/net/pkt_cls.h
+++ b/include/net/pkt_cls.h
@@ -126,9 +126,10 @@ tcf_exts_exec(struct sk_buff *skb, struct tcf_exts *exts,
126 return 0; 126 return 0;
127} 127}
128 128
129extern int tcf_exts_validate(struct tcf_proto *tp, struct nlattr **tb, 129extern int tcf_exts_validate(struct net *net, struct tcf_proto *tp,
130 struct nlattr *rate_tlv, struct tcf_exts *exts, 130 struct nlattr **tb, struct nlattr *rate_tlv,
131 const struct tcf_ext_map *map); 131 struct tcf_exts *exts,
132 const struct tcf_ext_map *map);
132extern void tcf_exts_destroy(struct tcf_proto *tp, struct tcf_exts *exts); 133extern void tcf_exts_destroy(struct tcf_proto *tp, struct tcf_exts *exts);
133extern void tcf_exts_change(struct tcf_proto *tp, struct tcf_exts *dst, 134extern void tcf_exts_change(struct tcf_proto *tp, struct tcf_exts *dst,
134 struct tcf_exts *src); 135 struct tcf_exts *src);