All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Eric W. Biederman" <ebiederm@xmission.com>
To: David Miller <davem@davemloft.net>
Cc: Pablo Neira Ayuso <pablo@netfilter.org>,
	netfilter-devel@vger.kernel.org, <netdev@vger.kernel.org>,
	Nicolas Dichtel <nicolas.dichtel@6wind.com>
Subject: [PATCH next 12/14] netfilter: Pass priv instead of nf_hook_ops to netfilter hooks
Date: Fri, 18 Sep 2015 11:05:58 -0500	[thread overview]
Message-ID: <1442592360-2575-12-git-send-email-ebiederm@xmission.com> (raw)
In-Reply-To: <87pp1fpy1b.fsf@x220.int.ebiederm.org>

From: Eric W Biederman <ebiederm@xmission.com>

Only pass the void *priv parameter out of the nf_hook_ops.  That is
all any of the functions are interested now, and by limiting what is
passed it becomes simpler to change implementation details.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
---
 include/linux/netfilter.h                      |  2 +-
 include/net/netfilter/br_netfilter.h           |  2 +-
 include/net/netfilter/nf_nat_l3proto.h         | 32 +++++++++++++-------------
 include/net/netfilter/nf_tables.h              |  3 +--
 net/bridge/br_netfilter_hooks.c                | 14 +++++------
 net/bridge/br_netfilter_ipv6.c                 |  2 +-
 net/bridge/netfilter/ebtable_filter.c          |  4 ++--
 net/bridge/netfilter/ebtable_nat.c             |  4 ++--
 net/bridge/netfilter/nf_tables_bridge.c        |  4 ++--
 net/decnet/netfilter/dn_rtmsg.c                |  2 +-
 net/ipv4/netfilter/arptable_filter.c           |  2 +-
 net/ipv4/netfilter/ipt_CLUSTERIP.c             |  2 +-
 net/ipv4/netfilter/ipt_SYNPROXY.c              |  2 +-
 net/ipv4/netfilter/iptable_filter.c            |  2 +-
 net/ipv4/netfilter/iptable_mangle.c            |  2 +-
 net/ipv4/netfilter/iptable_nat.c               | 18 +++++++--------
 net/ipv4/netfilter/iptable_raw.c               |  2 +-
 net/ipv4/netfilter/iptable_security.c          |  2 +-
 net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c |  8 +++----
 net/ipv4/netfilter/nf_defrag_ipv4.c            |  2 +-
 net/ipv4/netfilter/nf_nat_l3proto_ipv4.c       | 24 +++++++++----------
 net/ipv4/netfilter/nf_tables_arp.c             |  4 ++--
 net/ipv4/netfilter/nf_tables_ipv4.c            |  8 +++----
 net/ipv4/netfilter/nft_chain_nat_ipv4.c        | 20 ++++++++--------
 net/ipv4/netfilter/nft_chain_route_ipv4.c      |  4 ++--
 net/ipv6/netfilter/ip6t_SYNPROXY.c             |  2 +-
 net/ipv6/netfilter/ip6table_filter.c           |  2 +-
 net/ipv6/netfilter/ip6table_mangle.c           |  2 +-
 net/ipv6/netfilter/ip6table_nat.c              | 18 +++++++--------
 net/ipv6/netfilter/ip6table_raw.c              |  2 +-
 net/ipv6/netfilter/ip6table_security.c         |  2 +-
 net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c |  8 +++----
 net/ipv6/netfilter/nf_defrag_ipv6_hooks.c      |  2 +-
 net/ipv6/netfilter/nf_nat_l3proto_ipv6.c       | 24 +++++++++----------
 net/ipv6/netfilter/nf_tables_ipv6.c            |  8 +++----
 net/ipv6/netfilter/nft_chain_nat_ipv6.c        | 20 ++++++++--------
 net/ipv6/netfilter/nft_chain_route_ipv6.c      |  4 ++--
 net/netfilter/core.c                           |  2 +-
 net/netfilter/ipvs/ip_vs_core.c                | 24 +++++++++----------
 net/netfilter/nf_tables_core.c                 |  4 ++--
 net/netfilter/nf_tables_netdev.c               |  4 ++--
 security/selinux/hooks.c                       | 10 ++++----
 security/smack/smack_netfilter.c               |  4 ++--
 43 files changed, 156 insertions(+), 157 deletions(-)

diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
index 0b4d4560f33d..987c74cd523c 100644
--- a/include/linux/netfilter.h
+++ b/include/linux/netfilter.h
@@ -80,7 +80,7 @@ static inline void nf_hook_state_init(struct nf_hook_state *p,
 	p->okfn = okfn;
 }
 
-typedef unsigned int nf_hookfn(const struct nf_hook_ops *ops,
+typedef unsigned int nf_hookfn(void *priv,
 			       struct sk_buff *skb,
 			       const struct nf_hook_state *state);
 
diff --git a/include/net/netfilter/br_netfilter.h b/include/net/netfilter/br_netfilter.h
index 8fe266504900..c93c75fa41ad 100644
--- a/include/net/netfilter/br_netfilter.h
+++ b/include/net/netfilter/br_netfilter.h
@@ -46,7 +46,7 @@ void br_netfilter_enable(void);
 
 #if IS_ENABLED(CONFIG_IPV6)
 int br_validate_ipv6(struct sk_buff *skb);
-unsigned int br_nf_pre_routing_ipv6(const struct nf_hook_ops *ops,
+unsigned int br_nf_pre_routing_ipv6(void *priv,
 				    struct sk_buff *skb,
 				    const struct nf_hook_state *state);
 #else
diff --git a/include/net/netfilter/nf_nat_l3proto.h b/include/net/netfilter/nf_nat_l3proto.h
index a3127325f624..aef3e5fc9fd9 100644
--- a/include/net/netfilter/nf_nat_l3proto.h
+++ b/include/net/netfilter/nf_nat_l3proto.h
@@ -43,31 +43,31 @@ int nf_nat_icmp_reply_translation(struct sk_buff *skb, struct nf_conn *ct,
 				  enum ip_conntrack_info ctinfo,
 				  unsigned int hooknum);
 
-unsigned int nf_nat_ipv4_in(const struct nf_hook_ops *ops, struct sk_buff *skb,
+unsigned int nf_nat_ipv4_in(void *priv, struct sk_buff *skb,
 			    const struct nf_hook_state *state,
-			    unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+			    unsigned int (*do_chain)(void *priv,
 						     struct sk_buff *skb,
 						     const struct nf_hook_state *state,
 						     struct nf_conn *ct));
 
-unsigned int nf_nat_ipv4_out(const struct nf_hook_ops *ops, struct sk_buff *skb,
+unsigned int nf_nat_ipv4_out(void *priv, struct sk_buff *skb,
 			     const struct nf_hook_state *state,
-			     unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+			     unsigned int (*do_chain)(void *priv,
 						      struct sk_buff *skb,
 						      const struct nf_hook_state *state,
 						      struct nf_conn *ct));
 
-unsigned int nf_nat_ipv4_local_fn(const struct nf_hook_ops *ops,
+unsigned int nf_nat_ipv4_local_fn(void *priv,
 				  struct sk_buff *skb,
 				  const struct nf_hook_state *state,
-				  unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+				  unsigned int (*do_chain)(void *priv,
 							   struct sk_buff *skb,
 							   const struct nf_hook_state *state,
 							   struct nf_conn *ct));
 
-unsigned int nf_nat_ipv4_fn(const struct nf_hook_ops *ops, struct sk_buff *skb,
+unsigned int nf_nat_ipv4_fn(void *priv, struct sk_buff *skb,
 			    const struct nf_hook_state *state,
-			    unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+			    unsigned int (*do_chain)(void *priv,
 						     struct sk_buff *skb,
 						     const struct nf_hook_state *state,
 						     struct nf_conn *ct));
@@ -76,31 +76,31 @@ int nf_nat_icmpv6_reply_translation(struct sk_buff *skb, struct nf_conn *ct,
 				    enum ip_conntrack_info ctinfo,
 				    unsigned int hooknum, unsigned int hdrlen);
 
-unsigned int nf_nat_ipv6_in(const struct nf_hook_ops *ops, struct sk_buff *skb,
+unsigned int nf_nat_ipv6_in(void *priv, struct sk_buff *skb,
 			    const struct nf_hook_state *state,
-			    unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+			    unsigned int (*do_chain)(void *priv,
 						     struct sk_buff *skb,
 						     const struct nf_hook_state *state,
 						     struct nf_conn *ct));
 
-unsigned int nf_nat_ipv6_out(const struct nf_hook_ops *ops, struct sk_buff *skb,
+unsigned int nf_nat_ipv6_out(void *priv, struct sk_buff *skb,
 			     const struct nf_hook_state *state,
-			     unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+			     unsigned int (*do_chain)(void *priv,
 						      struct sk_buff *skb,
 						      const struct nf_hook_state *state,
 						      struct nf_conn *ct));
 
-unsigned int nf_nat_ipv6_local_fn(const struct nf_hook_ops *ops,
+unsigned int nf_nat_ipv6_local_fn(void *priv,
 				  struct sk_buff *skb,
 				  const struct nf_hook_state *state,
-				  unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+				  unsigned int (*do_chain)(void *priv,
 							   struct sk_buff *skb,
 							   const struct nf_hook_state *state,
 							   struct nf_conn *ct));
 
-unsigned int nf_nat_ipv6_fn(const struct nf_hook_ops *ops, struct sk_buff *skb,
+unsigned int nf_nat_ipv6_fn(void *priv, struct sk_buff *skb,
 			    const struct nf_hook_state *state,
-			    unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+			    unsigned int (*do_chain)(void *priv,
 						     struct sk_buff *skb,
 						     const struct nf_hook_state *state,
 						     struct nf_conn *ct));
diff --git a/include/net/netfilter/nf_tables.h b/include/net/netfilter/nf_tables.h
index 42e239e55aa3..c9149cc0a02d 100644
--- a/include/net/netfilter/nf_tables.h
+++ b/include/net/netfilter/nf_tables.h
@@ -816,8 +816,7 @@ int nft_register_basechain(struct nft_base_chain *basechain,
 void nft_unregister_basechain(struct nft_base_chain *basechain,
 			      unsigned int hook_nops);
 
-unsigned int nft_do_chain(struct nft_pktinfo *pkt,
-			  const struct nf_hook_ops *ops);
+unsigned int nft_do_chain(struct nft_pktinfo *pkt, void *priv);
 
 /**
  *	struct nft_table - nf_tables table
diff --git a/net/bridge/br_netfilter_hooks.c b/net/bridge/br_netfilter_hooks.c
index e6e76bbdc82f..e21e44c13e07 100644
--- a/net/bridge/br_netfilter_hooks.c
+++ b/net/bridge/br_netfilter_hooks.c
@@ -464,7 +464,7 @@ struct net_device *setup_pre_routing(struct sk_buff *skb)
  * receiving device) to make netfilter happy, the REDIRECT
  * target in particular.  Save the original destination IP
  * address to be able to detect DNAT afterwards. */
-static unsigned int br_nf_pre_routing(const struct nf_hook_ops *ops,
+static unsigned int br_nf_pre_routing(void *priv,
 				      struct sk_buff *skb,
 				      const struct nf_hook_state *state)
 {
@@ -486,7 +486,7 @@ static unsigned int br_nf_pre_routing(const struct nf_hook_ops *ops,
 			return NF_ACCEPT;
 
 		nf_bridge_pull_encap_header_rcsum(skb);
-		return br_nf_pre_routing_ipv6(ops, skb, state);
+		return br_nf_pre_routing_ipv6(priv, skb, state);
 	}
 
 	if (!brnf_call_iptables && !br->nf_call_iptables)
@@ -526,7 +526,7 @@ static unsigned int br_nf_pre_routing(const struct nf_hook_ops *ops,
  * took place when the packet entered the bridge), but we
  * register an IPv4 PRE_ROUTING 'sabotage' hook that will
  * prevent this from happening. */
-static unsigned int br_nf_local_in(const struct nf_hook_ops *ops,
+static unsigned int br_nf_local_in(void *priv,
 				   struct sk_buff *skb,
 				   const struct nf_hook_state *state)
 {
@@ -570,7 +570,7 @@ static int br_nf_forward_finish(struct net *net, struct sock *sk, struct sk_buff
  * but we are still able to filter on the 'real' indev/outdev
  * because of the physdev module. For ARP, indev and outdev are the
  * bridge ports. */
-static unsigned int br_nf_forward_ip(const struct nf_hook_ops *ops,
+static unsigned int br_nf_forward_ip(void *priv,
 				     struct sk_buff *skb,
 				     const struct nf_hook_state *state)
 {
@@ -633,7 +633,7 @@ static unsigned int br_nf_forward_ip(const struct nf_hook_ops *ops,
 	return NF_STOLEN;
 }
 
-static unsigned int br_nf_forward_arp(const struct nf_hook_ops *ops,
+static unsigned int br_nf_forward_arp(void *priv,
 				      struct sk_buff *skb,
 				      const struct nf_hook_state *state)
 {
@@ -801,7 +801,7 @@ static int br_nf_dev_queue_xmit(struct net *net, struct sock *sk, struct sk_buff
 }
 
 /* PF_BRIDGE/POST_ROUTING ********************************************/
-static unsigned int br_nf_post_routing(const struct nf_hook_ops *ops,
+static unsigned int br_nf_post_routing(void *priv,
 				       struct sk_buff *skb,
 				       const struct nf_hook_state *state)
 {
@@ -850,7 +850,7 @@ static unsigned int br_nf_post_routing(const struct nf_hook_ops *ops,
 /* IP/SABOTAGE *****************************************************/
 /* Don't hand locally destined packets to PF_INET(6)/PRE_ROUTING
  * for the second time. */
-static unsigned int ip_sabotage_in(const struct nf_hook_ops *ops,
+static unsigned int ip_sabotage_in(void *priv,
 				   struct sk_buff *skb,
 				   const struct nf_hook_state *state)
 {
diff --git a/net/bridge/br_netfilter_ipv6.c b/net/bridge/br_netfilter_ipv6.c
index e4dbbe44c724..c51cc3fd50d9 100644
--- a/net/bridge/br_netfilter_ipv6.c
+++ b/net/bridge/br_netfilter_ipv6.c
@@ -218,7 +218,7 @@ static int br_nf_pre_routing_finish_ipv6(struct net *net, struct sock *sk, struc
 /* Replicate the checks that IPv6 does on packet reception and pass the packet
  * to ip6tables.
  */
-unsigned int br_nf_pre_routing_ipv6(const struct nf_hook_ops *ops,
+unsigned int br_nf_pre_routing_ipv6(void *priv,
 				    struct sk_buff *skb,
 				    const struct nf_hook_state *state)
 {
diff --git a/net/bridge/netfilter/ebtable_filter.c b/net/bridge/netfilter/ebtable_filter.c
index 118ce40ac181..f9242dffa65e 100644
--- a/net/bridge/netfilter/ebtable_filter.c
+++ b/net/bridge/netfilter/ebtable_filter.c
@@ -57,14 +57,14 @@ static const struct ebt_table frame_filter = {
 };
 
 static unsigned int
-ebt_in_hook(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ebt_in_hook(void *priv, struct sk_buff *skb,
 	    const struct nf_hook_state *state)
 {
 	return ebt_do_table(skb, state, state->net->xt.frame_filter);
 }
 
 static unsigned int
-ebt_out_hook(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ebt_out_hook(void *priv, struct sk_buff *skb,
 	     const struct nf_hook_state *state)
 {
 	return ebt_do_table(skb, state, state->net->xt.frame_filter);
diff --git a/net/bridge/netfilter/ebtable_nat.c b/net/bridge/netfilter/ebtable_nat.c
index 56c3329d6c37..4bbefe03ab58 100644
--- a/net/bridge/netfilter/ebtable_nat.c
+++ b/net/bridge/netfilter/ebtable_nat.c
@@ -57,14 +57,14 @@ static struct ebt_table frame_nat = {
 };
 
 static unsigned int
-ebt_nat_in(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ebt_nat_in(void *priv, struct sk_buff *skb,
 	   const struct nf_hook_state *state)
 {
 	return ebt_do_table(skb, state, state->net->xt.frame_nat);
 }
 
 static unsigned int
-ebt_nat_out(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ebt_nat_out(void *priv, struct sk_buff *skb,
 	    const struct nf_hook_state *state)
 {
 	return ebt_do_table(skb, state, state->net->xt.frame_nat);
diff --git a/net/bridge/netfilter/nf_tables_bridge.c b/net/bridge/netfilter/nf_tables_bridge.c
index 318d825e4207..62f6b1b19589 100644
--- a/net/bridge/netfilter/nf_tables_bridge.c
+++ b/net/bridge/netfilter/nf_tables_bridge.c
@@ -87,7 +87,7 @@ static inline void nft_bridge_set_pktinfo_ipv6(struct nft_pktinfo *pkt,
 }
 
 static unsigned int
-nft_do_chain_bridge(const struct nf_hook_ops *ops,
+nft_do_chain_bridge(void *priv,
 		    struct sk_buff *skb,
 		    const struct nf_hook_state *state)
 {
@@ -105,7 +105,7 @@ nft_do_chain_bridge(const struct nf_hook_ops *ops,
 		break;
 	}
 
-	return nft_do_chain(&pkt, ops);
+	return nft_do_chain(&pkt, priv);
 }
 
 static struct nft_af_info nft_af_bridge __read_mostly = {
diff --git a/net/decnet/netfilter/dn_rtmsg.c b/net/decnet/netfilter/dn_rtmsg.c
index af34fc9bdf69..85f2fdc360c2 100644
--- a/net/decnet/netfilter/dn_rtmsg.c
+++ b/net/decnet/netfilter/dn_rtmsg.c
@@ -87,7 +87,7 @@ static void dnrmg_send_peer(struct sk_buff *skb)
 }
 
 
-static unsigned int dnrmg_hook(const struct nf_hook_ops *ops,
+static unsigned int dnrmg_hook(void *priv,
 			struct sk_buff *skb,
 			const struct nf_hook_state *state)
 {
diff --git a/net/ipv4/netfilter/arptable_filter.c b/net/ipv4/netfilter/arptable_filter.c
index 1352e12d4068..1897ee160920 100644
--- a/net/ipv4/netfilter/arptable_filter.c
+++ b/net/ipv4/netfilter/arptable_filter.c
@@ -27,7 +27,7 @@ static const struct xt_table packet_filter = {
 
 /* The work comes in here from netfilter.c */
 static unsigned int
-arptable_filter_hook(const struct nf_hook_ops *ops, struct sk_buff *skb,
+arptable_filter_hook(void *priv, struct sk_buff *skb,
 		     const struct nf_hook_state *state)
 {
 	return arpt_do_table(skb, state, state->net->ipv4.arptable_filter);
diff --git a/net/ipv4/netfilter/ipt_CLUSTERIP.c b/net/ipv4/netfilter/ipt_CLUSTERIP.c
index 69157d8eba95..3f32c03e8b2e 100644
--- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
+++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
@@ -507,7 +507,7 @@ static void arp_print(struct arp_payload *payload)
 #endif
 
 static unsigned int
-arp_mangle(const struct nf_hook_ops *ops,
+arp_mangle(void *priv,
 	   struct sk_buff *skb,
 	   const struct nf_hook_state *state)
 {
diff --git a/net/ipv4/netfilter/ipt_SYNPROXY.c b/net/ipv4/netfilter/ipt_SYNPROXY.c
index dfab314981e9..d7021f28c3f0 100644
--- a/net/ipv4/netfilter/ipt_SYNPROXY.c
+++ b/net/ipv4/netfilter/ipt_SYNPROXY.c
@@ -299,7 +299,7 @@ synproxy_tg4(struct sk_buff *skb, const struct xt_action_param *par)
 	return XT_CONTINUE;
 }
 
-static unsigned int ipv4_synproxy_hook(const struct nf_hook_ops *ops,
+static unsigned int ipv4_synproxy_hook(void *priv,
 				       struct sk_buff *skb,
 				       const struct nf_hook_state *nhs)
 {
diff --git a/net/ipv4/netfilter/iptable_filter.c b/net/ipv4/netfilter/iptable_filter.c
index 02d4c5395d6e..397ef2dd133e 100644
--- a/net/ipv4/netfilter/iptable_filter.c
+++ b/net/ipv4/netfilter/iptable_filter.c
@@ -33,7 +33,7 @@ static const struct xt_table packet_filter = {
 };
 
 static unsigned int
-iptable_filter_hook(const struct nf_hook_ops *ops, struct sk_buff *skb,
+iptable_filter_hook(void *priv, struct sk_buff *skb,
 		    const struct nf_hook_state *state)
 {
 	if (state->hook == NF_INET_LOCAL_OUT &&
diff --git a/net/ipv4/netfilter/iptable_mangle.c b/net/ipv4/netfilter/iptable_mangle.c
index dc2ff6884999..2d6fc911866f 100644
--- a/net/ipv4/netfilter/iptable_mangle.c
+++ b/net/ipv4/netfilter/iptable_mangle.c
@@ -78,7 +78,7 @@ ipt_mangle_out(struct sk_buff *skb, const struct nf_hook_state *state)
 
 /* The work comes in here from netfilter.c. */
 static unsigned int
-iptable_mangle_hook(const struct nf_hook_ops *ops,
+iptable_mangle_hook(void *priv,
 		     struct sk_buff *skb,
 		     const struct nf_hook_state *state)
 {
diff --git a/net/ipv4/netfilter/iptable_nat.c b/net/ipv4/netfilter/iptable_nat.c
index 8ff63ac1f0d6..3a2e4d830a0b 100644
--- a/net/ipv4/netfilter/iptable_nat.c
+++ b/net/ipv4/netfilter/iptable_nat.c
@@ -28,7 +28,7 @@ static const struct xt_table nf_nat_ipv4_table = {
 	.af		= NFPROTO_IPV4,
 };
 
-static unsigned int iptable_nat_do_chain(const struct nf_hook_ops *ops,
+static unsigned int iptable_nat_do_chain(void *priv,
 					 struct sk_buff *skb,
 					 const struct nf_hook_state *state,
 					 struct nf_conn *ct)
@@ -36,32 +36,32 @@ static unsigned int iptable_nat_do_chain(const struct nf_hook_ops *ops,
 	return ipt_do_table(skb, state, state->net->ipv4.nat_table);
 }
 
-static unsigned int iptable_nat_ipv4_fn(const struct nf_hook_ops *ops,
+static unsigned int iptable_nat_ipv4_fn(void *priv,
 					struct sk_buff *skb,
 					const struct nf_hook_state *state)
 {
-	return nf_nat_ipv4_fn(ops, skb, state, iptable_nat_do_chain);
+	return nf_nat_ipv4_fn(priv, skb, state, iptable_nat_do_chain);
 }
 
-static unsigned int iptable_nat_ipv4_in(const struct nf_hook_ops *ops,
+static unsigned int iptable_nat_ipv4_in(void *priv,
 					struct sk_buff *skb,
 					const struct nf_hook_state *state)
 {
-	return nf_nat_ipv4_in(ops, skb, state, iptable_nat_do_chain);
+	return nf_nat_ipv4_in(priv, skb, state, iptable_nat_do_chain);
 }
 
-static unsigned int iptable_nat_ipv4_out(const struct nf_hook_ops *ops,
+static unsigned int iptable_nat_ipv4_out(void *priv,
 					 struct sk_buff *skb,
 					 const struct nf_hook_state *state)
 {
-	return nf_nat_ipv4_out(ops, skb, state, iptable_nat_do_chain);
+	return nf_nat_ipv4_out(priv, skb, state, iptable_nat_do_chain);
 }
 
-static unsigned int iptable_nat_ipv4_local_fn(const struct nf_hook_ops *ops,
+static unsigned int iptable_nat_ipv4_local_fn(void *priv,
 					      struct sk_buff *skb,
 					      const struct nf_hook_state *state)
 {
-	return nf_nat_ipv4_local_fn(ops, skb, state, iptable_nat_do_chain);
+	return nf_nat_ipv4_local_fn(priv, skb, state, iptable_nat_do_chain);
 }
 
 static struct nf_hook_ops nf_nat_ipv4_ops[] __read_mostly = {
diff --git a/net/ipv4/netfilter/iptable_raw.c b/net/ipv4/netfilter/iptable_raw.c
index bbb0523d87de..1ba02811acb0 100644
--- a/net/ipv4/netfilter/iptable_raw.c
+++ b/net/ipv4/netfilter/iptable_raw.c
@@ -20,7 +20,7 @@ static const struct xt_table packet_raw = {
 
 /* The work comes in here from netfilter.c. */
 static unsigned int
-iptable_raw_hook(const struct nf_hook_ops *ops, struct sk_buff *skb,
+iptable_raw_hook(void *priv, struct sk_buff *skb,
 		 const struct nf_hook_state *state)
 {
 	if (state->hook == NF_INET_LOCAL_OUT &&
diff --git a/net/ipv4/netfilter/iptable_security.c b/net/ipv4/netfilter/iptable_security.c
index b92417038705..f534e2f05bad 100644
--- a/net/ipv4/netfilter/iptable_security.c
+++ b/net/ipv4/netfilter/iptable_security.c
@@ -37,7 +37,7 @@ static const struct xt_table security_table = {
 };
 
 static unsigned int
-iptable_security_hook(const struct nf_hook_ops *ops, struct sk_buff *skb,
+iptable_security_hook(void *priv, struct sk_buff *skb,
 		      const struct nf_hook_state *state)
 {
 	if (state->hook == NF_INET_LOCAL_OUT &&
diff --git a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
index 15749cc5cf2b..752fb40adcf8 100644
--- a/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
+++ b/net/ipv4/netfilter/nf_conntrack_l3proto_ipv4.c
@@ -92,7 +92,7 @@ static int ipv4_get_l4proto(const struct sk_buff *skb, unsigned int nhoff,
 	return NF_ACCEPT;
 }
 
-static unsigned int ipv4_helper(const struct nf_hook_ops *ops,
+static unsigned int ipv4_helper(void *priv,
 				struct sk_buff *skb,
 				const struct nf_hook_state *state)
 {
@@ -119,7 +119,7 @@ static unsigned int ipv4_helper(const struct nf_hook_ops *ops,
 			    ct, ctinfo);
 }
 
-static unsigned int ipv4_confirm(const struct nf_hook_ops *ops,
+static unsigned int ipv4_confirm(void *priv,
 				 struct sk_buff *skb,
 				 const struct nf_hook_state *state)
 {
@@ -143,14 +143,14 @@ out:
 	return nf_conntrack_confirm(skb);
 }
 
-static unsigned int ipv4_conntrack_in(const struct nf_hook_ops *ops,
+static unsigned int ipv4_conntrack_in(void *priv,
 				      struct sk_buff *skb,
 				      const struct nf_hook_state *state)
 {
 	return nf_conntrack_in(state->net, PF_INET, state->hook, skb);
 }
 
-static unsigned int ipv4_conntrack_local(const struct nf_hook_ops *ops,
+static unsigned int ipv4_conntrack_local(void *priv,
 					 struct sk_buff *skb,
 					 const struct nf_hook_state *state)
 {
diff --git a/net/ipv4/netfilter/nf_defrag_ipv4.c b/net/ipv4/netfilter/nf_defrag_ipv4.c
index 8aea536d2e83..b246346ee849 100644
--- a/net/ipv4/netfilter/nf_defrag_ipv4.c
+++ b/net/ipv4/netfilter/nf_defrag_ipv4.c
@@ -61,7 +61,7 @@ static enum ip_defrag_users nf_ct_defrag_user(unsigned int hooknum,
 		return IP_DEFRAG_CONNTRACK_OUT + zone_id;
 }
 
-static unsigned int ipv4_conntrack_defrag(const struct nf_hook_ops *ops,
+static unsigned int ipv4_conntrack_defrag(void *priv,
 					  struct sk_buff *skb,
 					  const struct nf_hook_state *state)
 {
diff --git a/net/ipv4/netfilter/nf_nat_l3proto_ipv4.c b/net/ipv4/netfilter/nf_nat_l3proto_ipv4.c
index 16da45a76dac..8593a9d88619 100644
--- a/net/ipv4/netfilter/nf_nat_l3proto_ipv4.c
+++ b/net/ipv4/netfilter/nf_nat_l3proto_ipv4.c
@@ -255,9 +255,9 @@ int nf_nat_icmp_reply_translation(struct sk_buff *skb,
 EXPORT_SYMBOL_GPL(nf_nat_icmp_reply_translation);
 
 unsigned int
-nf_nat_ipv4_fn(const struct nf_hook_ops *ops, struct sk_buff *skb,
+nf_nat_ipv4_fn(void *priv, struct sk_buff *skb,
 	       const struct nf_hook_state *state,
-	       unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+	       unsigned int (*do_chain)(void *priv,
 					struct sk_buff *skb,
 					const struct nf_hook_state *state,
 					struct nf_conn *ct))
@@ -308,7 +308,7 @@ nf_nat_ipv4_fn(const struct nf_hook_ops *ops, struct sk_buff *skb,
 		if (!nf_nat_initialized(ct, maniptype)) {
 			unsigned int ret;
 
-			ret = do_chain(ops, skb, state, ct);
+			ret = do_chain(priv, skb, state, ct);
 			if (ret != NF_ACCEPT)
 				return ret;
 
@@ -345,9 +345,9 @@ oif_changed:
 EXPORT_SYMBOL_GPL(nf_nat_ipv4_fn);
 
 unsigned int
-nf_nat_ipv4_in(const struct nf_hook_ops *ops, struct sk_buff *skb,
+nf_nat_ipv4_in(void *priv, struct sk_buff *skb,
 	       const struct nf_hook_state *state,
-	       unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+	       unsigned int (*do_chain)(void *priv,
 					 struct sk_buff *skb,
 					 const struct nf_hook_state *state,
 					 struct nf_conn *ct))
@@ -355,7 +355,7 @@ nf_nat_ipv4_in(const struct nf_hook_ops *ops, struct sk_buff *skb,
 	unsigned int ret;
 	__be32 daddr = ip_hdr(skb)->daddr;
 
-	ret = nf_nat_ipv4_fn(ops, skb, state, do_chain);
+	ret = nf_nat_ipv4_fn(priv, skb, state, do_chain);
 	if (ret != NF_DROP && ret != NF_STOLEN &&
 	    daddr != ip_hdr(skb)->daddr)
 		skb_dst_drop(skb);
@@ -365,9 +365,9 @@ nf_nat_ipv4_in(const struct nf_hook_ops *ops, struct sk_buff *skb,
 EXPORT_SYMBOL_GPL(nf_nat_ipv4_in);
 
 unsigned int
-nf_nat_ipv4_out(const struct nf_hook_ops *ops, struct sk_buff *skb,
+nf_nat_ipv4_out(void *priv, struct sk_buff *skb,
 		const struct nf_hook_state *state,
-		unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+		unsigned int (*do_chain)(void *priv,
 					  struct sk_buff *skb,
 					  const struct nf_hook_state *state,
 					  struct nf_conn *ct))
@@ -384,7 +384,7 @@ nf_nat_ipv4_out(const struct nf_hook_ops *ops, struct sk_buff *skb,
 	    ip_hdrlen(skb) < sizeof(struct iphdr))
 		return NF_ACCEPT;
 
-	ret = nf_nat_ipv4_fn(ops, skb, state, do_chain);
+	ret = nf_nat_ipv4_fn(priv, skb, state, do_chain);
 #ifdef CONFIG_XFRM
 	if (ret != NF_DROP && ret != NF_STOLEN &&
 	    !(IPCB(skb)->flags & IPSKB_XFRM_TRANSFORMED) &&
@@ -407,9 +407,9 @@ nf_nat_ipv4_out(const struct nf_hook_ops *ops, struct sk_buff *skb,
 EXPORT_SYMBOL_GPL(nf_nat_ipv4_out);
 
 unsigned int
-nf_nat_ipv4_local_fn(const struct nf_hook_ops *ops, struct sk_buff *skb,
+nf_nat_ipv4_local_fn(void *priv, struct sk_buff *skb,
 		     const struct nf_hook_state *state,
-		     unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+		     unsigned int (*do_chain)(void *priv,
 					       struct sk_buff *skb,
 					       const struct nf_hook_state *state,
 					       struct nf_conn *ct))
@@ -424,7 +424,7 @@ nf_nat_ipv4_local_fn(const struct nf_hook_ops *ops, struct sk_buff *skb,
 	    ip_hdrlen(skb) < sizeof(struct iphdr))
 		return NF_ACCEPT;
 
-	ret = nf_nat_ipv4_fn(ops, skb, state, do_chain);
+	ret = nf_nat_ipv4_fn(priv, skb, state, do_chain);
 	if (ret != NF_DROP && ret != NF_STOLEN &&
 	    (ct = nf_ct_get(skb, &ctinfo)) != NULL) {
 		enum ip_conntrack_dir dir = CTINFO2DIR(ctinfo);
diff --git a/net/ipv4/netfilter/nf_tables_arp.c b/net/ipv4/netfilter/nf_tables_arp.c
index 883bbf83fe09..9d09d4f59545 100644
--- a/net/ipv4/netfilter/nf_tables_arp.c
+++ b/net/ipv4/netfilter/nf_tables_arp.c
@@ -15,7 +15,7 @@
 #include <net/netfilter/nf_tables.h>
 
 static unsigned int
-nft_do_chain_arp(const struct nf_hook_ops *ops,
+nft_do_chain_arp(void *priv,
 		  struct sk_buff *skb,
 		  const struct nf_hook_state *state)
 {
@@ -23,7 +23,7 @@ nft_do_chain_arp(const struct nf_hook_ops *ops,
 
 	nft_set_pktinfo(&pkt, skb, state);
 
-	return nft_do_chain(&pkt, ops);
+	return nft_do_chain(&pkt, priv);
 }
 
 static struct nft_af_info nft_af_arp __read_mostly = {
diff --git a/net/ipv4/netfilter/nf_tables_ipv4.c b/net/ipv4/netfilter/nf_tables_ipv4.c
index 805be5c9fcc3..ca9dc3c46c4f 100644
--- a/net/ipv4/netfilter/nf_tables_ipv4.c
+++ b/net/ipv4/netfilter/nf_tables_ipv4.c
@@ -18,7 +18,7 @@
 #include <net/ip.h>
 #include <net/netfilter/nf_tables_ipv4.h>
 
-static unsigned int nft_do_chain_ipv4(const struct nf_hook_ops *ops,
+static unsigned int nft_do_chain_ipv4(void *priv,
 				      struct sk_buff *skb,
 				      const struct nf_hook_state *state)
 {
@@ -26,10 +26,10 @@ static unsigned int nft_do_chain_ipv4(const struct nf_hook_ops *ops,
 
 	nft_set_pktinfo_ipv4(&pkt, skb, state);
 
-	return nft_do_chain(&pkt, ops);
+	return nft_do_chain(&pkt, priv);
 }
 
-static unsigned int nft_ipv4_output(const struct nf_hook_ops *ops,
+static unsigned int nft_ipv4_output(void *priv,
 				    struct sk_buff *skb,
 				    const struct nf_hook_state *state)
 {
@@ -41,7 +41,7 @@ static unsigned int nft_ipv4_output(const struct nf_hook_ops *ops,
 		return NF_ACCEPT;
 	}
 
-	return nft_do_chain_ipv4(ops, skb, state);
+	return nft_do_chain_ipv4(priv, skb, state);
 }
 
 struct nft_af_info nft_af_ipv4 __read_mostly = {
diff --git a/net/ipv4/netfilter/nft_chain_nat_ipv4.c b/net/ipv4/netfilter/nft_chain_nat_ipv4.c
index c3ffecf28d38..f5c66a7a4bf2 100644
--- a/net/ipv4/netfilter/nft_chain_nat_ipv4.c
+++ b/net/ipv4/netfilter/nft_chain_nat_ipv4.c
@@ -26,7 +26,7 @@
 #include <net/netfilter/nf_nat_l3proto.h>
 #include <net/ip.h>
 
-static unsigned int nft_nat_do_chain(const struct nf_hook_ops *ops,
+static unsigned int nft_nat_do_chain(void *priv,
 				      struct sk_buff *skb,
 				      const struct nf_hook_state *state,
 				      struct nf_conn *ct)
@@ -35,35 +35,35 @@ static unsigned int nft_nat_do_chain(const struct nf_hook_ops *ops,
 
 	nft_set_pktinfo_ipv4(&pkt, skb, state);
 
-	return nft_do_chain(&pkt, ops);
+	return nft_do_chain(&pkt, priv);
 }
 
-static unsigned int nft_nat_ipv4_fn(const struct nf_hook_ops *ops,
+static unsigned int nft_nat_ipv4_fn(void *priv,
 				    struct sk_buff *skb,
 				    const struct nf_hook_state *state)
 {
-	return nf_nat_ipv4_fn(ops, skb, state, nft_nat_do_chain);
+	return nf_nat_ipv4_fn(priv, skb, state, nft_nat_do_chain);
 }
 
-static unsigned int nft_nat_ipv4_in(const struct nf_hook_ops *ops,
+static unsigned int nft_nat_ipv4_in(void *priv,
 				    struct sk_buff *skb,
 				    const struct nf_hook_state *state)
 {
-	return nf_nat_ipv4_in(ops, skb, state, nft_nat_do_chain);
+	return nf_nat_ipv4_in(priv, skb, state, nft_nat_do_chain);
 }
 
-static unsigned int nft_nat_ipv4_out(const struct nf_hook_ops *ops,
+static unsigned int nft_nat_ipv4_out(void *priv,
 				     struct sk_buff *skb,
 				     const struct nf_hook_state *state)
 {
-	return nf_nat_ipv4_out(ops, skb, state, nft_nat_do_chain);
+	return nf_nat_ipv4_out(priv, skb, state, nft_nat_do_chain);
 }
 
-static unsigned int nft_nat_ipv4_local_fn(const struct nf_hook_ops *ops,
+static unsigned int nft_nat_ipv4_local_fn(void *priv,
 					  struct sk_buff *skb,
 					  const struct nf_hook_state *state)
 {
-	return nf_nat_ipv4_local_fn(ops, skb, state, nft_nat_do_chain);
+	return nf_nat_ipv4_local_fn(priv, skb, state, nft_nat_do_chain);
 }
 
 static const struct nf_chain_type nft_chain_nat_ipv4 = {
diff --git a/net/ipv4/netfilter/nft_chain_route_ipv4.c b/net/ipv4/netfilter/nft_chain_route_ipv4.c
index 2a1e3d8a3e43..9f486b302108 100644
--- a/net/ipv4/netfilter/nft_chain_route_ipv4.c
+++ b/net/ipv4/netfilter/nft_chain_route_ipv4.c
@@ -21,7 +21,7 @@
 #include <net/route.h>
 #include <net/ip.h>
 
-static unsigned int nf_route_table_hook(const struct nf_hook_ops *ops,
+static unsigned int nf_route_table_hook(void *priv,
 					struct sk_buff *skb,
 					const struct nf_hook_state *state)
 {
@@ -45,7 +45,7 @@ static unsigned int nf_route_table_hook(const struct nf_hook_ops *ops,
 	daddr = iph->daddr;
 	tos = iph->tos;
 
-	ret = nft_do_chain(&pkt, ops);
+	ret = nft_do_chain(&pkt, priv);
 	if (ret != NF_DROP && ret != NF_QUEUE) {
 		iph = ip_hdr(skb);
 
diff --git a/net/ipv6/netfilter/ip6t_SYNPROXY.c b/net/ipv6/netfilter/ip6t_SYNPROXY.c
index 41451809b37c..c2356602158a 100644
--- a/net/ipv6/netfilter/ip6t_SYNPROXY.c
+++ b/net/ipv6/netfilter/ip6t_SYNPROXY.c
@@ -316,7 +316,7 @@ synproxy_tg6(struct sk_buff *skb, const struct xt_action_param *par)
 	return XT_CONTINUE;
 }
 
-static unsigned int ipv6_synproxy_hook(const struct nf_hook_ops *ops,
+static unsigned int ipv6_synproxy_hook(void *priv,
 				       struct sk_buff *skb,
 				       const struct nf_hook_state *nhs)
 {
diff --git a/net/ipv6/netfilter/ip6table_filter.c b/net/ipv6/netfilter/ip6table_filter.c
index a7327f61b90c..8b277b983ca5 100644
--- a/net/ipv6/netfilter/ip6table_filter.c
+++ b/net/ipv6/netfilter/ip6table_filter.c
@@ -32,7 +32,7 @@ static const struct xt_table packet_filter = {
 
 /* The work comes in here from netfilter.c. */
 static unsigned int
-ip6table_filter_hook(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip6table_filter_hook(void *priv, struct sk_buff *skb,
 		     const struct nf_hook_state *state)
 {
 	return ip6t_do_table(skb, state, state->net->ipv6.ip6table_filter);
diff --git a/net/ipv6/netfilter/ip6table_mangle.c b/net/ipv6/netfilter/ip6table_mangle.c
index c2e061dcedf3..8745b592b2f6 100644
--- a/net/ipv6/netfilter/ip6table_mangle.c
+++ b/net/ipv6/netfilter/ip6table_mangle.c
@@ -75,7 +75,7 @@ ip6t_mangle_out(struct sk_buff *skb, const struct nf_hook_state *state)
 
 /* The work comes in here from netfilter.c. */
 static unsigned int
-ip6table_mangle_hook(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip6table_mangle_hook(void *priv, struct sk_buff *skb,
 		     const struct nf_hook_state *state)
 {
 	if (state->hook == NF_INET_LOCAL_OUT)
diff --git a/net/ipv6/netfilter/ip6table_nat.c b/net/ipv6/netfilter/ip6table_nat.c
index efa6754c4d06..abea175d5853 100644
--- a/net/ipv6/netfilter/ip6table_nat.c
+++ b/net/ipv6/netfilter/ip6table_nat.c
@@ -30,7 +30,7 @@ static const struct xt_table nf_nat_ipv6_table = {
 	.af		= NFPROTO_IPV6,
 };
 
-static unsigned int ip6table_nat_do_chain(const struct nf_hook_ops *ops,
+static unsigned int ip6table_nat_do_chain(void *priv,
 					  struct sk_buff *skb,
 					  const struct nf_hook_state *state,
 					  struct nf_conn *ct)
@@ -38,32 +38,32 @@ static unsigned int ip6table_nat_do_chain(const struct nf_hook_ops *ops,
 	return ip6t_do_table(skb, state, state->net->ipv6.ip6table_nat);
 }
 
-static unsigned int ip6table_nat_fn(const struct nf_hook_ops *ops,
+static unsigned int ip6table_nat_fn(void *priv,
 				    struct sk_buff *skb,
 				    const struct nf_hook_state *state)
 {
-	return nf_nat_ipv6_fn(ops, skb, state, ip6table_nat_do_chain);
+	return nf_nat_ipv6_fn(priv, skb, state, ip6table_nat_do_chain);
 }
 
-static unsigned int ip6table_nat_in(const struct nf_hook_ops *ops,
+static unsigned int ip6table_nat_in(void *priv,
 				    struct sk_buff *skb,
 				    const struct nf_hook_state *state)
 {
-	return nf_nat_ipv6_in(ops, skb, state, ip6table_nat_do_chain);
+	return nf_nat_ipv6_in(priv, skb, state, ip6table_nat_do_chain);
 }
 
-static unsigned int ip6table_nat_out(const struct nf_hook_ops *ops,
+static unsigned int ip6table_nat_out(void *priv,
 				     struct sk_buff *skb,
 				     const struct nf_hook_state *state)
 {
-	return nf_nat_ipv6_out(ops, skb, state, ip6table_nat_do_chain);
+	return nf_nat_ipv6_out(priv, skb, state, ip6table_nat_do_chain);
 }
 
-static unsigned int ip6table_nat_local_fn(const struct nf_hook_ops *ops,
+static unsigned int ip6table_nat_local_fn(void *priv,
 					  struct sk_buff *skb,
 					  const struct nf_hook_state *state)
 {
-	return nf_nat_ipv6_local_fn(ops, skb, state, ip6table_nat_do_chain);
+	return nf_nat_ipv6_local_fn(priv, skb, state, ip6table_nat_do_chain);
 }
 
 static struct nf_hook_ops nf_nat_ipv6_ops[] __read_mostly = {
diff --git a/net/ipv6/netfilter/ip6table_raw.c b/net/ipv6/netfilter/ip6table_raw.c
index fac6ad7c0a7c..9021963565c3 100644
--- a/net/ipv6/netfilter/ip6table_raw.c
+++ b/net/ipv6/netfilter/ip6table_raw.c
@@ -19,7 +19,7 @@ static const struct xt_table packet_raw = {
 
 /* The work comes in here from netfilter.c. */
 static unsigned int
-ip6table_raw_hook(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip6table_raw_hook(void *priv, struct sk_buff *skb,
 		  const struct nf_hook_state *state)
 {
 	return ip6t_do_table(skb, state, state->net->ipv6.ip6table_raw);
diff --git a/net/ipv6/netfilter/ip6table_security.c b/net/ipv6/netfilter/ip6table_security.c
index 96c94fc240c8..0d856fedfeb0 100644
--- a/net/ipv6/netfilter/ip6table_security.c
+++ b/net/ipv6/netfilter/ip6table_security.c
@@ -36,7 +36,7 @@ static const struct xt_table security_table = {
 };
 
 static unsigned int
-ip6table_security_hook(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip6table_security_hook(void *priv, struct sk_buff *skb,
 		       const struct nf_hook_state *state)
 {
 	return ip6t_do_table(skb, state, state->net->ipv6.ip6table_security);
diff --git a/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c b/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
index 339be1d59afc..dd83ad42f8f6 100644
--- a/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
+++ b/net/ipv6/netfilter/nf_conntrack_l3proto_ipv6.c
@@ -95,7 +95,7 @@ static int ipv6_get_l4proto(const struct sk_buff *skb, unsigned int nhoff,
 	return NF_ACCEPT;
 }
 
-static unsigned int ipv6_helper(const struct nf_hook_ops *ops,
+static unsigned int ipv6_helper(void *priv,
 				struct sk_buff *skb,
 				const struct nf_hook_state *state)
 {
@@ -131,7 +131,7 @@ static unsigned int ipv6_helper(const struct nf_hook_ops *ops,
 	return helper->help(skb, protoff, ct, ctinfo);
 }
 
-static unsigned int ipv6_confirm(const struct nf_hook_ops *ops,
+static unsigned int ipv6_confirm(void *priv,
 				 struct sk_buff *skb,
 				 const struct nf_hook_state *state)
 {
@@ -165,14 +165,14 @@ out:
 	return nf_conntrack_confirm(skb);
 }
 
-static unsigned int ipv6_conntrack_in(const struct nf_hook_ops *ops,
+static unsigned int ipv6_conntrack_in(void *priv,
 				      struct sk_buff *skb,
 				      const struct nf_hook_state *state)
 {
 	return nf_conntrack_in(state->net, PF_INET6, state->hook, skb);
 }
 
-static unsigned int ipv6_conntrack_local(const struct nf_hook_ops *ops,
+static unsigned int ipv6_conntrack_local(void *priv,
 					 struct sk_buff *skb,
 					 const struct nf_hook_state *state)
 {
diff --git a/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c b/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
index a9c08520596b..a99baf63eccf 100644
--- a/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
+++ b/net/ipv6/netfilter/nf_defrag_ipv6_hooks.c
@@ -51,7 +51,7 @@ static enum ip6_defrag_users nf_ct6_defrag_user(unsigned int hooknum,
 		return IP6_DEFRAG_CONNTRACK_OUT + zone_id;
 }
 
-static unsigned int ipv6_defrag(const struct nf_hook_ops *ops,
+static unsigned int ipv6_defrag(void *priv,
 				struct sk_buff *skb,
 				const struct nf_hook_state *state)
 {
diff --git a/net/ipv6/netfilter/nf_nat_l3proto_ipv6.c b/net/ipv6/netfilter/nf_nat_l3proto_ipv6.c
index 8bc94907dbd9..357f57ba47e4 100644
--- a/net/ipv6/netfilter/nf_nat_l3proto_ipv6.c
+++ b/net/ipv6/netfilter/nf_nat_l3proto_ipv6.c
@@ -262,9 +262,9 @@ int nf_nat_icmpv6_reply_translation(struct sk_buff *skb,
 EXPORT_SYMBOL_GPL(nf_nat_icmpv6_reply_translation);
 
 unsigned int
-nf_nat_ipv6_fn(const struct nf_hook_ops *ops, struct sk_buff *skb,
+nf_nat_ipv6_fn(void *priv, struct sk_buff *skb,
 	       const struct nf_hook_state *state,
-	       unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+	       unsigned int (*do_chain)(void *priv,
 					struct sk_buff *skb,
 					const struct nf_hook_state *state,
 					struct nf_conn *ct))
@@ -317,7 +317,7 @@ nf_nat_ipv6_fn(const struct nf_hook_ops *ops, struct sk_buff *skb,
 		if (!nf_nat_initialized(ct, maniptype)) {
 			unsigned int ret;
 
-			ret = do_chain(ops, skb, state, ct);
+			ret = do_chain(priv, skb, state, ct);
 			if (ret != NF_ACCEPT)
 				return ret;
 
@@ -353,9 +353,9 @@ oif_changed:
 EXPORT_SYMBOL_GPL(nf_nat_ipv6_fn);
 
 unsigned int
-nf_nat_ipv6_in(const struct nf_hook_ops *ops, struct sk_buff *skb,
+nf_nat_ipv6_in(void *priv, struct sk_buff *skb,
 	       const struct nf_hook_state *state,
-	       unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+	       unsigned int (*do_chain)(void *priv,
 					struct sk_buff *skb,
 					const struct nf_hook_state *state,
 					struct nf_conn *ct))
@@ -363,7 +363,7 @@ nf_nat_ipv6_in(const struct nf_hook_ops *ops, struct sk_buff *skb,
 	unsigned int ret;
 	struct in6_addr daddr = ipv6_hdr(skb)->daddr;
 
-	ret = nf_nat_ipv6_fn(ops, skb, state, do_chain);
+	ret = nf_nat_ipv6_fn(priv, skb, state, do_chain);
 	if (ret != NF_DROP && ret != NF_STOLEN &&
 	    ipv6_addr_cmp(&daddr, &ipv6_hdr(skb)->daddr))
 		skb_dst_drop(skb);
@@ -373,9 +373,9 @@ nf_nat_ipv6_in(const struct nf_hook_ops *ops, struct sk_buff *skb,
 EXPORT_SYMBOL_GPL(nf_nat_ipv6_in);
 
 unsigned int
-nf_nat_ipv6_out(const struct nf_hook_ops *ops, struct sk_buff *skb,
+nf_nat_ipv6_out(void *priv, struct sk_buff *skb,
 		const struct nf_hook_state *state,
-		unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+		unsigned int (*do_chain)(void *priv,
 					 struct sk_buff *skb,
 					 const struct nf_hook_state *state,
 					 struct nf_conn *ct))
@@ -391,7 +391,7 @@ nf_nat_ipv6_out(const struct nf_hook_ops *ops, struct sk_buff *skb,
 	if (skb->len < sizeof(struct ipv6hdr))
 		return NF_ACCEPT;
 
-	ret = nf_nat_ipv6_fn(ops, skb, state, do_chain);
+	ret = nf_nat_ipv6_fn(priv, skb, state, do_chain);
 #ifdef CONFIG_XFRM
 	if (ret != NF_DROP && ret != NF_STOLEN &&
 	    !(IP6CB(skb)->flags & IP6SKB_XFRM_TRANSFORMED) &&
@@ -414,9 +414,9 @@ nf_nat_ipv6_out(const struct nf_hook_ops *ops, struct sk_buff *skb,
 EXPORT_SYMBOL_GPL(nf_nat_ipv6_out);
 
 unsigned int
-nf_nat_ipv6_local_fn(const struct nf_hook_ops *ops, struct sk_buff *skb,
+nf_nat_ipv6_local_fn(void *priv, struct sk_buff *skb,
 		     const struct nf_hook_state *state,
-		     unsigned int (*do_chain)(const struct nf_hook_ops *ops,
+		     unsigned int (*do_chain)(void *priv,
 					      struct sk_buff *skb,
 					      const struct nf_hook_state *state,
 					      struct nf_conn *ct))
@@ -430,7 +430,7 @@ nf_nat_ipv6_local_fn(const struct nf_hook_ops *ops, struct sk_buff *skb,
 	if (skb->len < sizeof(struct ipv6hdr))
 		return NF_ACCEPT;
 
-	ret = nf_nat_ipv6_fn(ops, skb, state, do_chain);
+	ret = nf_nat_ipv6_fn(priv, skb, state, do_chain);
 	if (ret != NF_DROP && ret != NF_STOLEN &&
 	    (ct = nf_ct_get(skb, &ctinfo)) != NULL) {
 		enum ip_conntrack_dir dir = CTINFO2DIR(ctinfo);
diff --git a/net/ipv6/netfilter/nf_tables_ipv6.c b/net/ipv6/netfilter/nf_tables_ipv6.c
index 41340b794f9b..120ea9131be0 100644
--- a/net/ipv6/netfilter/nf_tables_ipv6.c
+++ b/net/ipv6/netfilter/nf_tables_ipv6.c
@@ -16,7 +16,7 @@
 #include <net/netfilter/nf_tables.h>
 #include <net/netfilter/nf_tables_ipv6.h>
 
-static unsigned int nft_do_chain_ipv6(const struct nf_hook_ops *ops,
+static unsigned int nft_do_chain_ipv6(void *priv,
 				      struct sk_buff *skb,
 				      const struct nf_hook_state *state)
 {
@@ -26,10 +26,10 @@ static unsigned int nft_do_chain_ipv6(const struct nf_hook_ops *ops,
 	if (nft_set_pktinfo_ipv6(&pkt, skb, state) < 0)
 		return NF_DROP;
 
-	return nft_do_chain(&pkt, ops);
+	return nft_do_chain(&pkt, priv);
 }
 
-static unsigned int nft_ipv6_output(const struct nf_hook_ops *ops,
+static unsigned int nft_ipv6_output(void *priv,
 				    struct sk_buff *skb,
 				    const struct nf_hook_state *state)
 {
@@ -40,7 +40,7 @@ static unsigned int nft_ipv6_output(const struct nf_hook_ops *ops,
 		return NF_ACCEPT;
 	}
 
-	return nft_do_chain_ipv6(ops, skb, state);
+	return nft_do_chain_ipv6(priv, skb, state);
 }
 
 struct nft_af_info nft_af_ipv6 __read_mostly = {
diff --git a/net/ipv6/netfilter/nft_chain_nat_ipv6.c b/net/ipv6/netfilter/nft_chain_nat_ipv6.c
index e96feaefeb14..443cd306c0b0 100644
--- a/net/ipv6/netfilter/nft_chain_nat_ipv6.c
+++ b/net/ipv6/netfilter/nft_chain_nat_ipv6.c
@@ -24,7 +24,7 @@
 #include <net/netfilter/nf_nat_l3proto.h>
 #include <net/ipv6.h>
 
-static unsigned int nft_nat_do_chain(const struct nf_hook_ops *ops,
+static unsigned int nft_nat_do_chain(void *priv,
 				     struct sk_buff *skb,
 				     const struct nf_hook_state *state,
 				     struct nf_conn *ct)
@@ -33,35 +33,35 @@ static unsigned int nft_nat_do_chain(const struct nf_hook_ops *ops,
 
 	nft_set_pktinfo_ipv6(&pkt, skb, state);
 
-	return nft_do_chain(&pkt, ops);
+	return nft_do_chain(&pkt, priv);
 }
 
-static unsigned int nft_nat_ipv6_fn(const struct nf_hook_ops *ops,
+static unsigned int nft_nat_ipv6_fn(void *priv,
 				    struct sk_buff *skb,
 				    const struct nf_hook_state *state)
 {
-	return nf_nat_ipv6_fn(ops, skb, state, nft_nat_do_chain);
+	return nf_nat_ipv6_fn(priv, skb, state, nft_nat_do_chain);
 }
 
-static unsigned int nft_nat_ipv6_in(const struct nf_hook_ops *ops,
+static unsigned int nft_nat_ipv6_in(void *priv,
 				    struct sk_buff *skb,
 				    const struct nf_hook_state *state)
 {
-	return nf_nat_ipv6_in(ops, skb, state, nft_nat_do_chain);
+	return nf_nat_ipv6_in(priv, skb, state, nft_nat_do_chain);
 }
 
-static unsigned int nft_nat_ipv6_out(const struct nf_hook_ops *ops,
+static unsigned int nft_nat_ipv6_out(void *priv,
 				     struct sk_buff *skb,
 				     const struct nf_hook_state *state)
 {
-	return nf_nat_ipv6_out(ops, skb, state, nft_nat_do_chain);
+	return nf_nat_ipv6_out(priv, skb, state, nft_nat_do_chain);
 }
 
-static unsigned int nft_nat_ipv6_local_fn(const struct nf_hook_ops *ops,
+static unsigned int nft_nat_ipv6_local_fn(void *priv,
 					  struct sk_buff *skb,
 					  const struct nf_hook_state *state)
 {
-	return nf_nat_ipv6_local_fn(ops, skb, state, nft_nat_do_chain);
+	return nf_nat_ipv6_local_fn(priv, skb, state, nft_nat_do_chain);
 }
 
 static const struct nf_chain_type nft_chain_nat_ipv6 = {
diff --git a/net/ipv6/netfilter/nft_chain_route_ipv6.c b/net/ipv6/netfilter/nft_chain_route_ipv6.c
index d1bcd2ed7bcc..d42bbc1d7555 100644
--- a/net/ipv6/netfilter/nft_chain_route_ipv6.c
+++ b/net/ipv6/netfilter/nft_chain_route_ipv6.c
@@ -22,7 +22,7 @@
 #include <net/netfilter/nf_tables_ipv6.h>
 #include <net/route.h>
 
-static unsigned int nf_route_table_hook(const struct nf_hook_ops *ops,
+static unsigned int nf_route_table_hook(void *priv,
 					struct sk_buff *skb,
 					const struct nf_hook_state *state)
 {
@@ -45,7 +45,7 @@ static unsigned int nf_route_table_hook(const struct nf_hook_ops *ops,
 	/* flowlabel and prio (includes version, which shouldn't change either */
 	flowlabel = *((u32 *)ipv6_hdr(skb));
 
-	ret = nft_do_chain(&pkt, ops);
+	ret = nft_do_chain(&pkt, priv);
 	if (ret != NF_DROP && ret != NF_QUEUE &&
 	    (memcmp(&ipv6_hdr(skb)->saddr, &saddr, sizeof(saddr)) ||
 	     memcmp(&ipv6_hdr(skb)->daddr, &daddr, sizeof(daddr)) ||
diff --git a/net/netfilter/core.c b/net/netfilter/core.c
index 8e47f8113495..2e907335ee81 100644
--- a/net/netfilter/core.c
+++ b/net/netfilter/core.c
@@ -269,7 +269,7 @@ unsigned int nf_iterate(struct list_head *head,
 		/* Optimization: we don't need to hold module
 		   reference here, since function can't sleep. --RR */
 repeat:
-		verdict = (*elemp)->hook(*elemp, skb, state);
+		verdict = (*elemp)->hook((*elemp)->priv, skb, state);
 		if (verdict != NF_ACCEPT) {
 #ifdef CONFIG_NETFILTER_DEBUG
 			if (unlikely((verdict & NF_VERDICT_MASK)
diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
index 0be5f12cb12d..59b8a7a807ec 100644
--- a/net/netfilter/ipvs/ip_vs_core.c
+++ b/net/netfilter/ipvs/ip_vs_core.c
@@ -1283,7 +1283,7 @@ ip_vs_out(unsigned int hooknum, struct sk_buff *skb, int af)
  *	Check if packet is reply for established ip_vs_conn.
  */
 static unsigned int
-ip_vs_reply4(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip_vs_reply4(void *priv, struct sk_buff *skb,
 	     const struct nf_hook_state *state)
 {
 	return ip_vs_out(state->hook, skb, AF_INET);
@@ -1294,7 +1294,7 @@ ip_vs_reply4(const struct nf_hook_ops *ops, struct sk_buff *skb,
  *	Check if packet is reply for established ip_vs_conn.
  */
 static unsigned int
-ip_vs_local_reply4(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip_vs_local_reply4(void *priv, struct sk_buff *skb,
 		   const struct nf_hook_state *state)
 {
 	return ip_vs_out(state->hook, skb, AF_INET);
@@ -1308,7 +1308,7 @@ ip_vs_local_reply4(const struct nf_hook_ops *ops, struct sk_buff *skb,
  *	Check if packet is reply for established ip_vs_conn.
  */
 static unsigned int
-ip_vs_reply6(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip_vs_reply6(void *priv, struct sk_buff *skb,
 	     const struct nf_hook_state *state)
 {
 	return ip_vs_out(state->hook, skb, AF_INET6);
@@ -1319,7 +1319,7 @@ ip_vs_reply6(const struct nf_hook_ops *ops, struct sk_buff *skb,
  *	Check if packet is reply for established ip_vs_conn.
  */
 static unsigned int
-ip_vs_local_reply6(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip_vs_local_reply6(void *priv, struct sk_buff *skb,
 		   const struct nf_hook_state *state)
 {
 	return ip_vs_out(state->hook, skb, AF_INET6);
@@ -1776,7 +1776,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af)
  *	Schedule and forward packets from remote clients
  */
 static unsigned int
-ip_vs_remote_request4(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip_vs_remote_request4(void *priv, struct sk_buff *skb,
 		      const struct nf_hook_state *state)
 {
 	return ip_vs_in(state->hook, skb, AF_INET);
@@ -1787,7 +1787,7 @@ ip_vs_remote_request4(const struct nf_hook_ops *ops, struct sk_buff *skb,
  *	Schedule and forward packets from local clients
  */
 static unsigned int
-ip_vs_local_request4(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip_vs_local_request4(void *priv, struct sk_buff *skb,
 		     const struct nf_hook_state *state)
 {
 	return ip_vs_in(state->hook, skb, AF_INET);
@@ -1800,7 +1800,7 @@ ip_vs_local_request4(const struct nf_hook_ops *ops, struct sk_buff *skb,
  *	Schedule and forward packets from remote clients
  */
 static unsigned int
-ip_vs_remote_request6(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip_vs_remote_request6(void *priv, struct sk_buff *skb,
 		      const struct nf_hook_state *state)
 {
 	return ip_vs_in(state->hook, skb, AF_INET6);
@@ -1811,7 +1811,7 @@ ip_vs_remote_request6(const struct nf_hook_ops *ops, struct sk_buff *skb,
  *	Schedule and forward packets from local clients
  */
 static unsigned int
-ip_vs_local_request6(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip_vs_local_request6(void *priv, struct sk_buff *skb,
 		     const struct nf_hook_state *state)
 {
 	return ip_vs_in(state->hook, skb, AF_INET6);
@@ -1830,7 +1830,7 @@ ip_vs_local_request6(const struct nf_hook_ops *ops, struct sk_buff *skb,
  *      and send them to ip_vs_in_icmp.
  */
 static unsigned int
-ip_vs_forward_icmp(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip_vs_forward_icmp(void *priv, struct sk_buff *skb,
 		   const struct nf_hook_state *state)
 {
 	int r;
@@ -1846,12 +1846,12 @@ ip_vs_forward_icmp(const struct nf_hook_ops *ops, struct sk_buff *skb,
 	if (unlikely(sysctl_backup_only(ipvs) || !ipvs->enable))
 		return NF_ACCEPT;
 
-	return ip_vs_in_icmp(skb, &r, ops->hooknum);
+	return ip_vs_in_icmp(skb, &r, state->hook);
 }
 
 #ifdef CONFIG_IP_VS_IPV6
 static unsigned int
-ip_vs_forward_icmp_v6(const struct nf_hook_ops *ops, struct sk_buff *skb,
+ip_vs_forward_icmp_v6(void *priv, struct sk_buff *skb,
 		      const struct nf_hook_state *state)
 {
 	int r;
@@ -1869,7 +1869,7 @@ ip_vs_forward_icmp_v6(const struct nf_hook_ops *ops, struct sk_buff *skb,
 	if (unlikely(sysctl_backup_only(ipvs) || !ipvs->enable))
 		return NF_ACCEPT;
 
-	return ip_vs_in_icmp_v6(skb, &r, ops->hooknum, &iphdr);
+	return ip_vs_in_icmp_v6(skb, &r, state->hook, &iphdr);
 }
 #endif
 
diff --git a/net/netfilter/nf_tables_core.c b/net/netfilter/nf_tables_core.c
index e5c1f332e45e..f3695a497408 100644
--- a/net/netfilter/nf_tables_core.c
+++ b/net/netfilter/nf_tables_core.c
@@ -109,9 +109,9 @@ struct nft_jumpstack {
 };
 
 unsigned int
-nft_do_chain(struct nft_pktinfo *pkt, const struct nf_hook_ops *ops)
+nft_do_chain(struct nft_pktinfo *pkt, void *priv)
 {
-	const struct nft_chain *chain = ops->priv, *basechain = chain;
+	const struct nft_chain *chain = priv, *basechain = chain;
 	const struct net *net = pkt->net;
 	const struct nft_rule *rule;
 	const struct nft_expr *expr, *last;
diff --git a/net/netfilter/nf_tables_netdev.c b/net/netfilter/nf_tables_netdev.c
index db416a3396e9..7b9c053ba750 100644
--- a/net/netfilter/nf_tables_netdev.c
+++ b/net/netfilter/nf_tables_netdev.c
@@ -89,7 +89,7 @@ static inline void nft_netdev_set_pktinfo_ipv6(struct nft_pktinfo *pkt,
 }
 
 static unsigned int
-nft_do_chain_netdev(const struct nf_hook_ops *ops, struct sk_buff *skb,
+nft_do_chain_netdev(void *priv, struct sk_buff *skb,
 		    const struct nf_hook_state *state)
 {
 	struct nft_pktinfo pkt;
@@ -106,7 +106,7 @@ nft_do_chain_netdev(const struct nf_hook_ops *ops, struct sk_buff *skb,
 		break;
 	}
 
-	return nft_do_chain(&pkt, ops);
+	return nft_do_chain(&pkt, priv);
 }
 
 static struct nft_af_info nft_af_netdev __read_mostly = {
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index e4369d86e588..64340160f4ac 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -4866,7 +4866,7 @@ static unsigned int selinux_ip_forward(struct sk_buff *skb,
 	return NF_ACCEPT;
 }
 
-static unsigned int selinux_ipv4_forward(const struct nf_hook_ops *ops,
+static unsigned int selinux_ipv4_forward(void *priv,
 					 struct sk_buff *skb,
 					 const struct nf_hook_state *state)
 {
@@ -4874,7 +4874,7 @@ static unsigned int selinux_ipv4_forward(const struct nf_hook_ops *ops,
 }
 
 #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
-static unsigned int selinux_ipv6_forward(const struct nf_hook_ops *ops,
+static unsigned int selinux_ipv6_forward(void *priv,
 					 struct sk_buff *skb,
 					 const struct nf_hook_state *state)
 {
@@ -4924,7 +4924,7 @@ static unsigned int selinux_ip_output(struct sk_buff *skb,
 	return NF_ACCEPT;
 }
 
-static unsigned int selinux_ipv4_output(const struct nf_hook_ops *ops,
+static unsigned int selinux_ipv4_output(void *priv,
 					struct sk_buff *skb,
 					const struct nf_hook_state *state)
 {
@@ -5099,7 +5099,7 @@ static unsigned int selinux_ip_postroute(struct sk_buff *skb,
 	return NF_ACCEPT;
 }
 
-static unsigned int selinux_ipv4_postroute(const struct nf_hook_ops *ops,
+static unsigned int selinux_ipv4_postroute(void *priv,
 					   struct sk_buff *skb,
 					   const struct nf_hook_state *state)
 {
@@ -5107,7 +5107,7 @@ static unsigned int selinux_ipv4_postroute(const struct nf_hook_ops *ops,
 }
 
 #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
-static unsigned int selinux_ipv6_postroute(const struct nf_hook_ops *ops,
+static unsigned int selinux_ipv6_postroute(void *priv,
 					   struct sk_buff *skb,
 					   const struct nf_hook_state *state)
 {
diff --git a/security/smack/smack_netfilter.c b/security/smack/smack_netfilter.c
index a455cfc9ec1f..a9e41da05d28 100644
--- a/security/smack/smack_netfilter.c
+++ b/security/smack/smack_netfilter.c
@@ -21,7 +21,7 @@
 
 #if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
 
-static unsigned int smack_ipv6_output(const struct nf_hook_ops *ops,
+static unsigned int smack_ipv6_output(void *priv,
 					struct sk_buff *skb,
 					const struct nf_hook_state *state)
 {
@@ -38,7 +38,7 @@ static unsigned int smack_ipv6_output(const struct nf_hook_ops *ops,
 }
 #endif	/* IPV6 */
 
-static unsigned int smack_ipv4_output(const struct nf_hook_ops *ops,
+static unsigned int smack_ipv4_output(void *priv,
 					struct sk_buff *skb,
 					const struct nf_hook_state *state)
 {
-- 
2.2.1

  parent reply	other threads:[~2015-09-18 16:13 UTC|newest]

Thread overview: 540+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-16  0:59 [PATCH next 0/30] Passing net through the netfilter hooks Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 01/30] netfilter: Remove !CONFIG_NETFITLER definition of nf_hook_thresh Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 02/30] netfilter: Store net in nf_hook_state Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 03/30] netfilter: Pass net to nf_hook_thresh Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 04/30] xfrm: Remove unused afinfo method init_dst Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 05/30] net: Merge dst_output and dst_output_sk Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 06/30] ipv4: Compute net once in ip_forward Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 07/30] ipv4: Compute net once in ip_forward_finish Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 08/30] ipv4: Compute net once in ip_rcv Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 09/30] ipv4: Remember the net in ip_output and ip_mc_output Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 10/30] ipv4: Don't recompute net in ipmr_queue_xmit Eric W. Biederman
2015-09-16  1:03 ` [PATCH next 11/30] ipv4: Only compute net once in ip_do_fragment Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 12/30] ipv4: Explicitly compute net in ip_fragment Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 13/30] ipv4: Only compute net once in ip_finish_output2 Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 14/30] ipv4: Only compute net once in ip_rcv_finish Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 15/30] ipv4: Only compute net once in ipmr_forward_finish Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 16/30] ipv6: Only compute net once in ip6mr_forward2_finish Eric W. Biederman
2015-09-17 16:00   ` Nicolas Dichtel
2015-09-16  1:04 ` [PATCH next 17/30] arp: Introduce arp_xmit_finish Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 18/30] bridge: Introduce br_send_bpdu_finish Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 19/30] net: Remove dev_queue_xmit_sk Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 20/30] ipv6: Don't recompute net in ip6_rcv Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 21/30] ipv6: Only compute net once in ip6_finish_output2 Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 22/30] ipv6: Cache net in ip6_output Eric W. Biederman
2015-09-17 16:06   ` Nicolas Dichtel
2015-09-16  1:04 ` [PATCH next 23/30] ipv6: Compute net once in raw6_send_hdrinc Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 24/30] bridge: Pass net into br_nf_ip_fragment Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 25/30] bridge: Pass net into br_nf_push_frag_xmit Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 26/30] bridge: Cache net in br_nf_pre_routing_finish Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 27/30] bridge: Add br_netif_receive_skb remove netif_receive_skb_sk Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 28/30] netfilter: Pass struct net into the netfilter hooks Eric W. Biederman
2015-09-17 16:25   ` Nicolas Dichtel
2015-09-16  1:04 ` [PATCH next 29/30] netfilter: Use nf_hook_state.net Eric W. Biederman
2015-09-16  1:04 ` [PATCH next 30/30] netfilter: Pass net into okfn Eric W. Biederman
2015-09-17 16:30 ` [PATCH next 0/30] Passing net through the netfilter hooks Nicolas Dichtel
2015-09-17 22:24   ` Eric W. Biederman
2015-09-18  7:08     ` Nicolas Dichtel
2015-09-17 22:21 ` [PATCH next 31/30] netfilter: Add blank lines in callers of " Eric W. Biederman
2015-09-18  0:19 ` [PATCH next 0/30] Passing net through the " David Miller
2015-09-18  5:38   ` David Miller
2015-09-18  8:56   ` Pablo Neira Ayuso
2015-09-18 15:06 ` [PATCH next 0/14] netfilter: Stop guessing net Eric W. Biederman
2015-09-18 16:01   ` Nicolas Dichtel
2015-09-18 16:13     ` Eric W. Biederman
2015-09-18 16:28       ` Nicolas Dichtel
2015-09-18 16:05   ` [PATCH next 01/14] ebtables: Simplify the arguments to ebt_do_table Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 02/14] inet netfilter: Remove hook from ip6t_do_table, arp_do_table, ipt_do_table Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 03/14] inet netfilter: Prefer state->hook to ops->hooknum Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 04/14] nftables: kill nft_pktinfo.ops Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 05/14] x_tables: Pass struct net in xt_action_param Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 06/14] x_tables: Use par->net instead of computing from the passed net devices Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 07/14] nftables: Pass struct net in nft_pktinfo Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 08/14] nftables: Use pkt->net instead of computing net from the passed net_devices Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 09/14] net: Pass net to nf_dup_ipv4 and nf_dup_ipv6 Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 10/14] nf_conntrack: Add a struct net parameter to l4_pkt_to_tuple Eric W. Biederman
2015-09-18 16:05   ` [PATCH next 11/14] ipvs: Read hooknum from state rather than ops->hooknum Eric W. Biederman
2015-09-18 16:05   ` Eric W. Biederman [this message]
2015-09-18 16:05   ` [PATCH next 13/14] netfilter: Pass net into nf_xfrm_me_harder Eric W. Biederman
2015-09-18 16:06   ` [PATCH next 14/14] netfilter: Use nf_ct_net instead of dev_net(out) in nf_nat_masquerade_ipv6 Eric W. Biederman
2015-09-18 16:32   ` [PATCH next 0/14] netfilter: Stop guessing net Nicolas Dichtel
2015-09-18 18:15     ` Eric W. Biederman
2015-09-18 19:28   ` [PATCH next 0/15] netfilter: Stop guessing net (take 2) Eric W. Biederman
2015-09-18 19:32     ` [PATCH next 01/15] ebtables: Simplify the arguments to ebt_do_table Eric W. Biederman
2015-09-18 19:32     ` [PATCH next 02/15] inet netfilter: Remove hook from ip6t_do_table, arp_do_table, ipt_do_table Eric W. Biederman
2015-09-18 19:32     ` [PATCH next 03/15] inet netfilter: Prefer state->hook to ops->hooknum Eric W. Biederman
2015-09-18 19:32     ` [PATCH next 04/15] nftables: kill nft_pktinfo.ops Eric W. Biederman
2015-09-18 19:32     ` [PATCH next 05/15] x_tables: Pass struct net in xt_action_param Eric W. Biederman
2015-09-18 19:32     ` [PATCH next 06/15] x_tables: Use par->net instead of computing from the passed net devices Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 07/15] nftables: Pass struct net in nft_pktinfo Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 08/15] nftables: Use pkt->net instead of computing net from the passed net_devices Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 09/15] net: Pass net to nf_dup_ipv4 and nf_dup_ipv6 Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 10/15] act_connmark: Remember the struct net instead of guessing it Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 11/15] nf_conntrack: Add a struct net parameter to l4_pkt_to_tuple Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 12/15] ipvs: Read hooknum from state rather than ops->hooknum Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 13/15] netfilter: Pass priv instead of nf_hook_ops to netfilter hooks Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 14/15] netfilter: Pass net into nf_xfrm_me_harder Eric W. Biederman
2015-09-18 19:33     ` [PATCH next 15/15] netfilter: Use nf_ct_net instead of dev_net(out) in nf_nat_masquerade_ipv6 Eric W. Biederman
2015-09-18 20:21     ` [PATCH next 0/15] netfilter: Stop guessing net (take 2) Pablo Neira Ayuso
2015-09-20  6:21     ` [PATCH next 00/84] ipvs: Stop guessing the network namespace Eric W. Biederman
2015-09-20  6:21       ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 01/84] ipvs: Hoist computation of ipvs earlier in sctp_conn_schedule Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 02/84] ipvs: Don't use current in proc_do_defense_mode Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 03/84] ipvs: Use state->net in the ipvs forward functions Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 04/84] ipvs: Store ipvs not net in struct ip_vs_conn Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 05/84] ipvs: Store ipvs not net in struct ip_vs_conn_param Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 06/84] ipvs: Pass ipvs not net to ip_vs_fill_conn Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 07/84] ipvs: Store ipvs not net in struct ip_vs_service Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 08/84] ipvs: Pass ipvs not net to ip_vs_svc_fwm_hashkey Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 09/84] ipvs: Pass ipvs not net to __ip_vs_svc_fwm_find Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 10/84] ipvs: Pass ipvs not net to ip_vs_svc_hashkey Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 11/84] ipvs: Pass ipvs not net to __ip_vs_service_find Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 12/84] ipvs: Pass ipvs not net to ipvs_service_find Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 13/84] ipvs: Pass ipvs not net to ip_vs_has_real_service Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 14/84] ipvs: Pass ipvs not net to ip_vs_find_dest Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 15/84] ipvs: Pass ipvs not net to ip_vs_trash_cleanup Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 16/84] ipvs: Pass ipvs not net to __ip_vs_del_dest Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 17/84] ipvs: Pass ipvs not net to ip_vs_dest_trash_expire Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 18/84] ipvs: Cache ipvs in ip_vs_genl_set_cmd Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 19/84] ipvs: Pass ipvs not net to ip_vs_add_service Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 20/84] ipvs: Pass ipvs not net to ip_vs_flush Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 21/84] ipvs: Pass ipvs not net to ip_vs_service_net_cleanup Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 22/84] ipvs: Pass ipvs not net to ip_vs_zero_all Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 23/84] ipvs: Cache ipvs in ip_vs_in_icmp and ip_vs_in_icmp_v6 Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 24/84] ipvs: Pass ipvs not net to ip_vs_proto_data_get Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 25/84] ipvs: Pass ipvs not net to ip_vs_set_timeout Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 26/84] ipvs: Pass ipvs not net to __ip_vs_get_servie_entries Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 27/84] ipvs: Pass ipvs not net to __ip_vs_get_dest_entries Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 28/84] ipvs: Pass ipvs not net to __ip_vs_get_timeouts Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 29/84] ipvs: Pass ipvs not net to ip_vs_genl_parse_service Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 30/84] ipvs: Pass ipvs not net to ip_vs_genl_find_service Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 31/84] ipvs: Pass ipvs not net to ip_vs_genl_new_daemon Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 32/84] ipvs: Pass ipvs not net to ip_vs_genl_del_daemon Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 33/84] ipvs: Pass ipvs not net to start_sync_thread Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 34/84] ipvs: Pass ipvs not net to stop_sync_thread Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 35/84] ipvs: Pass ipvs not net to make_send_sock Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 36/84] ipvs: Pass ipvs not net to make_receive_sock Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 37/84] ipvs: Store ipvs not net in struct ip_vs_sync_thread_data Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 38/84] ipvs: Pass ipvs not net to ip_vs_process_message Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 39/84] ipvs: Pass ipvs not net to ip_vs_sync_conn_v0 Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 40/84] ipvs: Pass ipvs not net to ip_vs_sync_conn Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 41/84] ipvs: Pass ipvs not net to ip_vs_proc_conn Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 42/84] ipvs: Pass ipvs not net to ip_vs_proc_sync_conn Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:22       ` [PATCH next 43/84] ipvs: Pass ipvs not net to ip_vs_sync_net_init Eric W. Biederman
2015-09-20  6:22         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 44/84] ipvs: Pass ipvs not net to ip_vs_sync_net_cleanup Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 45/84] ipvs: Pass ipvs not net to ip_vs_genl_set_config Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 46/84] ipvs: Pass ipvs not net to ip_vs_start_estimator aned ip_vs_stop_estimator Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 47/84] ipvs: Pass ipvs not net to ip_vs_random_drop_entry Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 48/84] ipvs: Pass ipvs not net to ip_vs_control_net_(init|cleanup)_sysctl Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 49/84] ipvs: Pass ipvs not net into ip_vs_control_net_(init|cleanup) Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 50/84] ipvs: Pass ipvs not net to estimation_timer Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 51/84] ipvs: Pass ipvs not net to ip_vs_estimator_net_init and ip_vs_estimator_cleanup Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 52/84] ipvs: Pass ipvs not net into register_app and unregister_app Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 53/84] ipvs: Pass ipvs not net into ip_vs_app_inc_new Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 54/84] ipvs: Pass ipvs not net to register_ip_vs_app_inc Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 55/84] ipvs: Pass ipvs not net to register_ip_vs_app and unregister_ip_vs_app Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 56/84] ipvs: Pass ipvs not net into ip_vs_app_inc_release Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 57/84] ipvs: Pass ipvs not net into ip_vs_app_net_init and ip_vs_app_net_cleanup Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 58/84] ipvs: Pass ipvs not net into [un]register_ip_vs_proto_netns Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 59/84] ipvs: Pass ipvs not net into init_netns and exit_netns Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 60/84] ipvs: Pass ipvs into ip_vs_conn_fill_param_proto Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 61/84] ipvs: Pass ipvs into .conn_in_get and ip_vs_conn_in_get_proto Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 62/84] ipvs: Pass ipvs into conn_out_get Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 63/84] ipvs: Pass ipvs not net to ip_vs_conn_hashkey Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 64/84] ipvs: Pass ipvs not net into ip_vs_conn_net_flush Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 65/84] ipvs: Pass ipvs not net into ip_vs_conn_net_init and ip_vs_conn_net_cleanup Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 66/84] ipvs: Pass ipvs into .conn_schedule and ip_vs_try_to_schedule Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 67/84] ipvs: Better derivation of ipvs in ip_vs_tunnel_xmit Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 68/84] ipvs: Pass ipvs into __ip_vs_get_out_rt Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 69/84] ipvs: Pass ipvs into __ip_vs_get_out_rt_v6 Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 70/84] ipvs: Pass ipvs into ensure_mtu_is adequate Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 71/84] ipvs: Better derivation of ipvs in ip_vs_in_stats and ip_vs_out_stats Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 72/84] ipvs: Wrap sysctl_cache_bypass and remove ifdefs in ip_vs_leave Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 73/84] ipvs: Simplify ipvs and net access " Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 74/84] ipvs: Pass ipvs not net into sysctl_nat_icmp_send Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 75/84] ipvs: Pass ipvs into ip_vs_out Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 76/84] ipvs: Pass ipvs into ip_vs_in Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 77/84] ipvs: Pass ipvs into ip_vs_in_icmp and ip_vs_in_icmp_v6 Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 78/84] ipvs: Pass ipvs into ip_vs_out_icmp and ip_vs_out_icmp_v6 Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 79/84] ipvs: Pass ipvs through ip_vs_route_me_harder into sysctl_snat_reroute Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 80/84] ipvs: Remove net argument from ip_vs_tcp_conn_listen Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 81/84] ipvs: Pass ipvs not net to ip_vs_protocol_net_(init|cleanup) Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 82/84] ipvs: Remove skb_net Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 83/84] ipvs: Remove skb_sknet Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20  6:23       ` [PATCH next 84/84] ipvs: Pass ipvs into ip_vs_gather_frags Eric W. Biederman
2015-09-20  6:23         ` Eric W. Biederman
2015-09-20 14:38       ` [PATCH next 00/84] ipvs: Stop guessing the network namespace Julian Anastasov
2015-09-20 16:41         ` Eric W. Biederman
2015-09-21 18:01       ` [PATCH next 00/84] ipvs: Stop guessing the network namespace (take 2) Eric W. Biederman
2015-09-21 18:01         ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 01/84] ipvs: Hoist computation of ipvs earlier in sctp_conn_schedule Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 02/84] ipvs: Don't use current in proc_do_defense_mode Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-23  1:06           ` Simon Horman
2015-09-23  1:53             ` Eric W. Biederman
2015-09-24  1:38               ` Simon Horman
2015-09-21 18:01         ` [PATCH next 03/84] ipvs: Use state->net in the ipvs forward functions Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 04/84] ipvs: Store ipvs not net in struct ip_vs_conn Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 05/84] ipvs: Store ipvs not net in struct ip_vs_conn_param Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 06/84] ipvs: Pass ipvs not net to ip_vs_fill_conn Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 07/84] ipvs: Store ipvs not net in struct ip_vs_service Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 08/84] ipvs: Pass ipvs not net to ip_vs_svc_fwm_hashkey Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 09/84] ipvs: Pass ipvs not net to __ip_vs_svc_fwm_find Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 10/84] ipvs: Pass ipvs not net to ip_vs_svc_hashkey Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 11/84] ipvs: Pass ipvs not net to __ip_vs_service_find Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 12/84] ipvs: Pass ipvs not net to ip_vs_service_find Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 13/84] ipvs: Pass ipvs not net to ip_vs_has_real_service Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 14/84] ipvs: Pass ipvs not net to ip_vs_find_dest Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 15/84] ipvs: Pass ipvs not net to ip_vs_trash_cleanup Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 16/84] ipvs: Pass ipvs not net to __ip_vs_del_dest Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 17/84] ipvs: Pass ipvs not net to ip_vs_dest_trash_expire Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 18/84] ipvs: Cache ipvs in ip_vs_genl_set_cmd Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 19/84] ipvs: Pass ipvs not net to ip_vs_add_service Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 20/84] ipvs: Pass ipvs not net to ip_vs_flush Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 21/84] ipvs: Pass ipvs not net to ip_vs_service_net_cleanup Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:01         ` [PATCH next 22/84] ipvs: Pass ipvs not net to ip_vs_zero_all Eric W. Biederman
2015-09-21 18:01           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 23/84] ipvs: Cache ipvs in ip_vs_in_icmp and ip_vs_in_icmp_v6 Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 24/84] ipvs: Pass ipvs not net to ip_vs_proto_data_get Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 25/84] ipvs: Pass ipvs not net to ip_vs_set_timeout Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 26/84] ipvs: Pass ipvs not net to __ip_vs_get_service_entries Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 27/84] ipvs: Pass ipvs not net to __ip_vs_get_dest_entries Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 28/84] ipvs: Pass ipvs not net to __ip_vs_get_timeouts Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 29/84] ipvs: Pass ipvs not net to ip_vs_genl_parse_service Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 30/84] ipvs: Pass ipvs not net to ip_vs_genl_find_service Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 31/84] ipvs: Pass ipvs not net to ip_vs_genl_new_daemon Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 32/84] ipvs: Pass ipvs not net to ip_vs_genl_del_daemon Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 33/84] ipvs: Pass ipvs not net to start_sync_thread Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 34/84] ipvs: Pass ipvs not net to stop_sync_thread Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 35/84] ipvs: Pass ipvs not net to make_send_sock Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 36/84] ipvs: Pass ipvs not net to make_receive_sock Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 37/84] ipvs: Store ipvs not net in struct ip_vs_sync_thread_data Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 38/84] ipvs: Pass ipvs not net to ip_vs_process_message Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 39/84] ipvs: Pass ipvs not net to ip_vs_sync_conn_v0 Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 40/84] ipvs: Pass ipvs not net to ip_vs_sync_conn Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 41/84] ipvs: Pass ipvs not net to ip_vs_proc_conn Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 42/84] ipvs: Pass ipvs not net to ip_vs_proc_sync_conn Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 43/84] ipvs: Pass ipvs not net to ip_vs_sync_net_init Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 44/84] ipvs: Pass ipvs not net to ip_vs_sync_net_cleanup Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 45/84] ipvs: Pass ipvs not net to ip_vs_genl_set_config Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 46/84] ipvs: Pass ipvs not net to ip_vs_start_estimator aned ip_vs_stop_estimator Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 47/84] ipvs: Pass ipvs not net to ip_vs_random_drop_entry Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 48/84] ipvs: Pass ipvs not net to ip_vs_control_net_(init|cleanup)_sysctl Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 49/84] ipvs: Pass ipvs not net into ip_vs_control_net_(init|cleanup) Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 50/84] ipvs: Pass ipvs not net to estimation_timer Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 51/84] ipvs: Pass ipvs not net to ip_vs_estimator_net_init and ip_vs_estimator_cleanup Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 52/84] ipvs: Pass ipvs not net into register_app and unregister_app Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 53/84] ipvs: Pass ipvs not net into ip_vs_app_inc_new Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 54/84] ipvs: Pass ipvs not net to register_ip_vs_app_inc Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 55/84] ipvs: Pass ipvs not net to register_ip_vs_app and unregister_ip_vs_app Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 56/84] ipvs: Pass ipvs not net into ip_vs_app_inc_release Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 57/84] ipvs: Pass ipvs not net into ip_vs_app_net_init and ip_vs_app_net_cleanup Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 58/84] ipvs: Pass ipvs not net into [un]register_ip_vs_proto_netns Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 59/84] ipvs: Pass ipvs not net into init_netns and exit_netns Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 60/84] ipvs: Pass ipvs into ip_vs_conn_fill_param_proto Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 61/84] ipvs: Pass ipvs into .conn_in_get and ip_vs_conn_in_get_proto Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 62/84] ipvs: Pass ipvs into conn_out_get Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 63/84] ipvs: Pass ipvs not net to ip_vs_conn_hashkey Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 64/84] ipvs: Pass ipvs not net into ip_vs_conn_net_flush Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 65/84] ipvs: Pass ipvs not net into ip_vs_conn_net_init and ip_vs_conn_net_cleanup Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 66/84] ipvs: Pass ipvs into .conn_schedule and ip_vs_try_to_schedule Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 67/84] ipvs: Better derivation of ipvs in ip_vs_tunnel_xmit Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 68/84] ipvs: Pass ipvs into __ip_vs_get_out_rt Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 69/84] ipvs: Pass ipvs into __ip_vs_get_out_rt_v6 Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 70/84] ipvs: Pass ipvs into ensure_mtu_is adequate Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 71/84] ipvs: Better derivation of ipvs in ip_vs_in_stats and ip_vs_out_stats Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 72/84] ipvs: Wrap sysctl_cache_bypass and remove ifdefs in ip_vs_leave Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 73/84] ipvs: Simplify ipvs and net access " Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 74/84] ipvs: Pass ipvs not net into sysctl_nat_icmp_send Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 75/84] ipvs: Pass ipvs into ip_vs_out Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 76/84] ipvs: Pass ipvs into ip_vs_in Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 77/84] ipvs: Pass ipvs into ip_vs_in_icmp and ip_vs_in_icmp_v6 Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 78/84] ipvs: Pass ipvs into ip_vs_out_icmp and ip_vs_out_icmp_v6 Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 79/84] ipvs: Pass ipvs through ip_vs_route_me_harder into sysctl_snat_reroute Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 80/84] ipvs: Remove net argument from ip_vs_tcp_conn_listen Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 81/84] ipvs: Pass ipvs not net to ip_vs_protocol_net_(init|cleanup) Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:02         ` [PATCH next 82/84] ipvs: Remove skb_net Eric W. Biederman
2015-09-21 18:02           ` Eric W. Biederman
2015-09-21 18:03         ` [PATCH next 83/84] ipvs: Remove skb_sknet Eric W. Biederman
2015-09-21 18:03           ` Eric W. Biederman
2015-09-21 18:03         ` [PATCH next 84/84] ipvs: Pass ipvs into ip_vs_gather_frags Eric W. Biederman
2015-09-21 18:03           ` Eric W. Biederman
2015-09-22  7:22         ` [PATCH next 00/84] ipvs: Stop guessing the network namespace (take 2) Julian Anastasov
2015-09-22  8:50           ` Pablo Neira Ayuso
2015-09-23  0:17             ` Simon Horman
2015-09-23  9:16               ` Pablo Neira Ayuso
2015-09-25 20:01     ` [PATCH next 0/5] netfilter: Pass net into ip_route_me_harder Eric W. Biederman
2015-09-25 20:07       ` [PATCH next 1/5] ipv4: Push struct net down into nf_send_reset Eric W. Biederman
2015-09-25 20:07       ` [PATCH next 2/5] netfilter: Push struct net down into nf_afinfo.reroute Eric W. Biederman
2015-09-25 20:07       ` [PATCH next 3/5] netfilter: ipt_SYNPROXY: Pass snet into synproxy_send_tcp Eric W. Biederman
2015-09-25 20:07       ` [PATCH next 4/5] ipv4: Pass struct net into ip_route_me_harder Eric W. Biederman
2015-09-25 20:07       ` [PATCH next 5/5] ipv6: Pass struct net into ip6_route_me_harder Eric W. Biederman
2015-09-28  7:29       ` [PATCH next 0/5] netfilter: Pass net into ip_route_me_harder Nicolas Dichtel
2015-09-29 18:32       ` Pablo Neira Ayuso
2015-09-30 21:24       ` [PATCH net-next 0/6] net: Pass net through ip fragmention Eric W. Biederman
2015-09-30 21:25         ` [PATCH net-next 1/6] openvswitch: Pass net into ovs_vport_output Eric W. Biederman
2015-10-01  8:31           ` Nicolas Dichtel
2015-09-30 21:25         ` [PATCH net-next 2/6] openvswitch: Pass net into ovs_fragment Eric W. Biederman
2015-10-01  8:31           ` Nicolas Dichtel
2015-10-01 16:03             ` Eric W. Biederman
2015-10-01 22:14               ` Nicolas Dichtel
2015-09-30 21:25         ` [PATCH net-next 3/6] ipv4: Pass struct net through ip_fragment Eric W. Biederman
2015-09-30 21:25         ` [PATCH net-next 4/6] ipv6: Pass struct net through ip6_fragment Eric W. Biederman
2015-10-01  8:31           ` Nicolas Dichtel
2015-10-01 16:44             ` [PATCH net-next 7/6] ipv6: Add missing newline to __xfrm6_output_finish Eric W. Biederman
2015-09-30 21:25         ` [PATCH net-next 5/6] bridge: Remove br_nf_push_frag_xmit_sk Eric W. Biederman
2015-09-30 21:25         ` [PATCH net-next 6/6] openvswitch: Remove ovs_vport_output_sk Eric W. Biederman
2015-10-01  8:33         ` [PATCH net-next 0/6] net: Pass net through ip fragmention Nicolas Dichtel
2015-10-05 10:40         ` David Miller
2015-10-06 18:50         ` [PATCH net-next 00/15] net: Pass net through the output path Eric W. Biederman
2015-10-06 18:50           ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 01/15] ipv4: Fix ip_local_out_sk by passing the sk into __ip_local_out_sk Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-07 13:37             ` Sergei Shtylyov
2015-10-07 14:48             ` Nicolas Dichtel
2015-10-07 14:48               ` Nicolas Dichtel
2015-10-06 18:53           ` [PATCH net-next 02/15] xfrm: Only compute net once in xfrm_policy_queue_process Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 03/15] net: Pass net into dst_output and remove dst_output_okfn Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 04/15] dst: Pass a sk into .local_out Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 05/15] ipv4: Merge __ip_local_out and __ip_local_out_sk Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 06/15] ipv4: Merge ip_local_out and ip_local_out_sk Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-07 14:48             ` Nicolas Dichtel
2015-10-07 14:48               ` Nicolas Dichtel
2015-10-07 20:39               ` Eric W. Biederman
2015-10-07 20:39                 ` Eric W. Biederman
2015-10-08  9:38                 ` Nicolas Dichtel
2015-10-06 18:53           ` [PATCH net-next 07/15] ipv6: Merge __ip6_local_out and __ip6_local_out_sk Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 08/15] ipv6: Merge ip6_local_out and ip6_local_out_sk Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 09/15] ipv4: Cache net in iptunnel_xmit Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 10/15] ipv4: Cache net in ip_build_and_send_pkt and ip_queue_xmit Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 21:40             ` Eric Dumazet
2015-10-07  3:26               ` Eric W. Biederman
2015-10-07  3:48                 ` Eric Dumazet
2015-10-06 18:53           ` [PATCH net-next 11/15] ppp: Cache net in pptp_xmit Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 12/15] ipvlan: Cache net in ipvlan_process_v4_outbound and ipvlan_process_v6_outbound Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-07  1:19             ` Mahesh Bandewar
2015-10-07  1:24               ` Mahesh Bandewar
2015-10-06 18:53           ` [PATCH net-next 13/15] ipv4,ipv6: Pass net into __ip_local_out and __ip6_local_out Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 14/15] ipv4,ipv6: Pass net into ip_local_out and ip6_local_out Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-06 18:53           ` [PATCH net-next 15/15] dst: Pass net into dst->output Eric W. Biederman
2015-10-06 18:53             ` Eric W. Biederman
2015-10-07 21:46           ` [PATCH net-next 00/16] net: Pass net through the output path v2 Eric W. Biederman
2015-10-07 21:46             ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 01/16] ipv4: Fix ip_local_out_sk by passing the sk into __ip_local_out_sk Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 02/16] ipv4: Fix ip_queue_xmit to pass sk into ip_local_out_sk Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 03/16] xfrm: Only compute net once in xfrm_policy_queue_process Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 04/16] net: Pass net into dst_output and remove dst_output_okfn Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 05/16] dst: Pass a sk into .local_out Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 06/16] ipv4: Merge __ip_local_out and __ip_local_out_sk Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 07/16] ipv4: Merge ip_local_out and ip_local_out_sk Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 08/16] ipv6: Merge __ip6_local_out and __ip6_local_out_sk Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 09/16] ipv6: Merge ip6_local_out and ip6_local_out_sk Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 10/16] ipv4: Cache net in iptunnel_xmit Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 11/16] ipv4: Cache net in ip_build_and_send_pkt and ip_queue_xmit Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 12/16] ppp: Cache net in pptp_xmit Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 13/16] ipvlan: Cache net in ipvlan_process_v4_outbound and ipvlan_process_v6_outbound Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 14/16] ipv4,ipv6: Pass net into __ip_local_out and __ip6_local_out Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 15/16] ipv4,ipv6: Pass net into ip_local_out and ip6_local_out Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-07 21:48             ` [PATCH net-next 16/16] dst: Pass net into dst->output Eric W. Biederman
2015-10-07 21:48               ` Eric W. Biederman
2015-10-08  9:40             ` [PATCH net-next 00/16] net: Pass net through the output path v2 Nicolas Dichtel
2015-10-08  9:40               ` Nicolas Dichtel
2015-10-08 11:27             ` David Miller
2015-10-09 18:42             ` [PATCH net-next 0/3] net: Pass net into defragmentation Eric W. Biederman
2015-10-12  7:26               ` Nicolas Dichtel
2015-10-13  2:44               ` David Miller
2015-10-09 18:44             ` [PATCH net-next 1/3] ipv4: Only compute net once in ip_call_ra_chain Eric W. Biederman
2015-10-09 18:44             ` [PATCH net-next 2/3] ipv4: Pass struct net into ip_defrag and ip_check_defrag Eric W. Biederman
2015-10-12 20:11               ` Pablo Neira Ayuso
2015-10-09 18:44             ` [PATCH net-next 3/3] ipv6: Pass struct net into nf_ct_frag6_gather Eric W. Biederman
2015-10-12 20:12               ` Pablo Neira Ayuso

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1442592360-2575-12-git-send-email-ebiederm@xmission.com \
    --to=ebiederm@xmission.com \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=nicolas.dichtel@6wind.com \
    --cc=pablo@netfilter.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.