Skip to content

Commit 95120eb

Browse files
committed
Merge branch 'gtp-fixes'
Andreas Schultz says: ==================== various gtp fixes I'm sorry for the compile error mess up in the last version. It's no excuse for not test compiling, but the hunks got lost in a rebase. This is the part of the previous "simple gtp improvements" series that Pablo indicated should go into net. The addition of the module alias fixes genl family autoloading, clearing the DF bit fixes a protocol violation in regard to the specification and the netns comparison fixes a corner case of cross netns recv. v2->v3: fix compiler error introduced in rebase ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
2 parents 92e55f4 + 3ab1b46 commit 95120eb

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

drivers/net/gtp.c

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ struct gtp_dev {
6969
struct socket *sock0;
7070
struct socket *sock1u;
7171

72-
struct net *net;
7372
struct net_device *dev;
7473

7574
unsigned int hash_size;
@@ -316,7 +315,7 @@ static int gtp_encap_recv(struct sock *sk, struct sk_buff *skb)
316315

317316
netdev_dbg(gtp->dev, "encap_recv sk=%p\n", sk);
318317

319-
xnet = !net_eq(gtp->net, dev_net(gtp->dev));
318+
xnet = !net_eq(sock_net(sk), dev_net(gtp->dev));
320319

321320
switch (udp_sk(sk)->encap_type) {
322321
case UDP_ENCAP_GTP0:
@@ -612,7 +611,7 @@ static netdev_tx_t gtp_dev_xmit(struct sk_buff *skb, struct net_device *dev)
612611
pktinfo.fl4.saddr, pktinfo.fl4.daddr,
613612
pktinfo.iph->tos,
614613
ip4_dst_hoplimit(&pktinfo.rt->dst),
615-
htons(IP_DF),
614+
0,
616615
pktinfo.gtph_port, pktinfo.gtph_port,
617616
true, false);
618617
break;
@@ -658,7 +657,7 @@ static void gtp_link_setup(struct net_device *dev)
658657
static int gtp_hashtable_new(struct gtp_dev *gtp, int hsize);
659658
static void gtp_hashtable_free(struct gtp_dev *gtp);
660659
static int gtp_encap_enable(struct net_device *dev, struct gtp_dev *gtp,
661-
int fd_gtp0, int fd_gtp1, struct net *src_net);
660+
int fd_gtp0, int fd_gtp1);
662661

663662
static int gtp_newlink(struct net *src_net, struct net_device *dev,
664663
struct nlattr *tb[], struct nlattr *data[])
@@ -675,7 +674,7 @@ static int gtp_newlink(struct net *src_net, struct net_device *dev,
675674
fd0 = nla_get_u32(data[IFLA_GTP_FD0]);
676675
fd1 = nla_get_u32(data[IFLA_GTP_FD1]);
677676

678-
err = gtp_encap_enable(dev, gtp, fd0, fd1, src_net);
677+
err = gtp_encap_enable(dev, gtp, fd0, fd1);
679678
if (err < 0)
680679
goto out_err;
681680

@@ -821,7 +820,7 @@ static void gtp_hashtable_free(struct gtp_dev *gtp)
821820
}
822821

823822
static int gtp_encap_enable(struct net_device *dev, struct gtp_dev *gtp,
824-
int fd_gtp0, int fd_gtp1, struct net *src_net)
823+
int fd_gtp0, int fd_gtp1)
825824
{
826825
struct udp_tunnel_sock_cfg tuncfg = {NULL};
827826
struct socket *sock0, *sock1u;
@@ -858,7 +857,6 @@ static int gtp_encap_enable(struct net_device *dev, struct gtp_dev *gtp,
858857

859858
gtp->sock0 = sock0;
860859
gtp->sock1u = sock1u;
861-
gtp->net = src_net;
862860

863861
tuncfg.sk_user_data = gtp;
864862
tuncfg.encap_rcv = gtp_encap_recv;
@@ -1376,3 +1374,4 @@ MODULE_LICENSE("GPL");
13761374
MODULE_AUTHOR("Harald Welte <hwelte@sysmocom.de>");
13771375
MODULE_DESCRIPTION("Interface driver for GTP encapsulated traffic");
13781376
MODULE_ALIAS_RTNL_LINK("gtp");
1377+
MODULE_ALIAS_GENL_FAMILY("gtp");

0 commit comments

Comments
 (0)