netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andreas Schultz <aschultz@tpip.net>
To: Pablo Neira <pablo@netfilter.org>
Cc: netdev@vger.kernel.org, Harald Welte <laforge@gnumonks.org>,
	Lionel Gauthier <Lionel.Gauthier@eurecom.fr>,
	openbsc@lists.osmocom.org
Subject: [PATCH 06/17] gtp: fix cross netns recv on gtp socket
Date: Mon, 23 Jan 2017 12:56:55 +0100	[thread overview]
Message-ID: <20170123115706.4354-7-aschultz@tpip.net> (raw)
In-Reply-To: <20170123115706.4354-1-aschultz@tpip.net>

The use of the paassed through netlink src_net to check for a
cross netns operation was wrong. Using the GTP socket and the
GTP netdevice is always correct (even if the netdev has been
moved to new netns after link creation).

Remove the now obsolete net field from gtp_dev.

Signed-off-by: Andreas Schultz <aschultz@tpip.net>
---
 drivers/net/gtp.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
index 7a3c5f6..bc8734b7 100644
--- a/drivers/net/gtp.c
+++ b/drivers/net/gtp.c
@@ -69,7 +69,6 @@ struct gtp_dev {
 	struct socket		*sock0;
 	struct socket		*sock1u;
 
-	struct net		*net;
 	struct net_device	*dev;
 
 	unsigned int		hash_size;
@@ -292,7 +291,7 @@ static int gtp_encap_recv(struct sock *sk, struct sk_buff *skb)
 
 	netdev_dbg(gtp->dev, "encap_recv sk=%p\n", sk);
 
-	xnet = !net_eq(gtp->net, dev_net(gtp->dev));
+	xnet = !net_eq(sock_net(sk), dev_net(gtp->dev));
 
 	switch (udp_sk(sk)->encap_type) {
 	case UDP_ENCAP_GTP0:
@@ -642,7 +641,7 @@ static void gtp_link_setup(struct net_device *dev)
 static int gtp_hashtable_new(struct gtp_dev *gtp, int hsize);
 static void gtp_hashtable_free(struct gtp_dev *gtp);
 static int gtp_encap_enable(struct net_device *dev, struct gtp_dev *gtp,
-			    struct net *src_net, struct nlattr *data[]);
+			    struct nlattr *data[]);
 static void gtp_encap_disable(struct gtp_dev *gtp);
 
 static int gtp_newlink(struct net *src_net, struct net_device *dev,
@@ -660,7 +659,7 @@ static int gtp_newlink(struct net *src_net, struct net_device *dev,
 		hashsize = nla_get_u32(data[IFLA_GTP_PDP_HASHSIZE]);
 
 	if (data[IFLA_GTP_FD0] || data[IFLA_GTP_FD1]) {
-		err = gtp_encap_enable(dev, gtp, src_net, data);
+		err = gtp_encap_enable(dev, gtp, data);
 		if (err < 0)
 			goto out_err;
 	}
@@ -839,7 +838,7 @@ static struct socket *gtp_encap_enable_socket(int fd, int type,
 }
 
 static int gtp_encap_enable(struct net_device *dev, struct gtp_dev *gtp,
-			    struct net *src_net, struct nlattr *data[])
+			    struct nlattr *data[])
 {
 	struct socket *sock0 = NULL;
 	struct socket *sock1u = NULL;
@@ -867,7 +866,6 @@ static int gtp_encap_enable(struct net_device *dev, struct gtp_dev *gtp,
 
 	gtp->sock0 = sock0;
 	gtp->sock1u = sock1u;
-	gtp->net = src_net;
 
 	return 0;
 }
-- 
2.10.2

  parent reply	other threads:[~2017-01-23 12:06 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-23 11:56 [PATCH 00/17] gtp: fixes and support multiple VRF's per GTP socket Andreas Schultz
2017-01-23 11:56 ` [PATCH 01/17] gtp: add genl family modules alias Andreas Schultz
2017-01-23 11:56 ` [PATCH 02/17] gtp: clear DF bit on GTP packet tx Andreas Schultz
2017-01-23 11:56 ` [PATCH 03/17] gtp: make GTP sockets in gtp_newlink optional Andreas Schultz
2017-01-23 11:56 ` [PATCH 04/17] gtp: return error ptr in find pdp helpers Andreas Schultz
2017-01-23 11:56 ` [PATCH 05/17] gtp: unify genl_find_pdp and prepare for per socket lookup Andreas Schultz
2017-01-23 11:56 ` Andreas Schultz [this message]
2017-01-23 11:56 ` [PATCH 07/17] gtp: remove unnecessary rcu_read_lock Andreas Schultz
2017-01-23 11:56 ` [PATCH 08/17] gtp: consolidate pdp context destruction into helper Andreas Schultz
2017-01-23 11:56 ` [PATCH 09/17] gtp: use addr_hash when traversing pdp contexts Andreas Schultz
2017-01-23 11:56 ` [PATCH 10/17] gtp: add socket to pdp context Andreas Schultz
2017-01-23 11:57 ` [PATCH 11/17] gtp: consolidate gtp socket rx path Andreas Schultz
2017-01-23 11:57 ` [PATCH 12/17] gtp: let userspace handle packets for invalid tunnels Andreas Schultz
2017-01-23 11:57 ` [PATCH 13/17] gtp: replace netdev_dbg and KERN_DEBUG printk with pr_debug Andreas Schultz
2017-01-23 11:57 ` [PATCH 14/17] gtp: move TEID hash to per socket structure Andreas Schultz
2017-01-23 11:57 ` [PATCH 15/17] gtp: rename gtp hashtable helpers Andreas Schultz
2017-01-23 11:57 ` [PATCH 16/17] gtp: add genl cmd to enable GTP encapsulation on UDP socket Andreas Schultz
2017-01-23 11:57 ` [PATCH 17/17] gtp: add support to select a GTP socket during PDP context creation Andreas Schultz

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=20170123115706.4354-7-aschultz@tpip.net \
    --to=aschultz@tpip.net \
    --cc=Lionel.Gauthier@eurecom.fr \
    --cc=laforge@gnumonks.org \
    --cc=netdev@vger.kernel.org \
    --cc=openbsc@lists.osmocom.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).