[kernel/f16] Add patch to fix ip6_tunnel naming (rhbz 751165)
Josh Boyer
jwboyer at fedoraproject.org
Mon Nov 14 18:57:46 UTC 2011
commit 5046e8a2018c5e39a96b769289de739546b9d67b
Author: Josh Boyer <jwboyer at redhat.com>
Date: Mon Nov 14 13:56:46 2011 -0500
Add patch to fix ip6_tunnel naming (rhbz 751165)
...-copy-parms.name-after-register_netdevice.patch | 76 ++++++++++++++++++++
kernel.spec | 7 ++
2 files changed, 83 insertions(+), 0 deletions(-)
---
diff --git a/ip6_tunnel-copy-parms.name-after-register_netdevice.patch b/ip6_tunnel-copy-parms.name-after-register_netdevice.patch
new file mode 100644
index 0000000..d3bb6a2
--- /dev/null
+++ b/ip6_tunnel-copy-parms.name-after-register_netdevice.patch
@@ -0,0 +1,76 @@
+From 731abb9cb27aef6013ce60808a04e04a545f3f4e Mon Sep 17 00:00:00 2001
+From: Josh Boyer <jwboyer at redhat.com>
+Date: Thu, 10 Nov 2011 15:10:23 +0000
+Subject: [PATCH] ip6_tunnel: copy parms.name after register_netdevice
+
+Commit 1c5cae815d removed an explicit call to dev_alloc_name in ip6_tnl_create
+because register_netdevice will now create a valid name. This works for the
+net_device itself.
+
+However the tunnel keeps a copy of the name in the parms structure for the
+ip6_tnl associated with the tunnel. parms.name is set by copying the net_device
+name in ip6_tnl_dev_init_gen. That function is called from ip6_tnl_dev_init in
+ip6_tnl_create, but it is done before register_netdevice is called so the name
+is set to a bogus value in the parms.name structure.
+
+This shows up if you do a simple tunnel add, followed by a tunnel show:
+
+[root at localhost ~]# ip -6 tunnel add remote fec0::100 local fec0::200
+[root at localhost ~]# ip -6 tunnel show
+ip6tnl0: ipv6/ipv6 remote :: local :: encaplimit 0 hoplimit 0 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
+ip6tnl%d: ipv6/ipv6 remote fec0::100 local fec0::200 encaplimit 4 hoplimit 64 tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000)
+[root at localhost ~]#
+
+Fix this by moving the strcpy out of ip6_tnl_dev_init_gen, and calling it after
+register_netdevice has successfully returned.
+
+Cc: stable at vger.kernel.org
+Signed-off-by: Josh Boyer <jwboyer at redhat.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+---
+ net/ipv6/ip6_tunnel.c | 8 +++++++-
+ 1 files changed, 7 insertions(+), 1 deletions(-)
+
+diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
+index bdc15c9..4e2e9ff 100644
+--- a/net/ipv6/ip6_tunnel.c
++++ b/net/ipv6/ip6_tunnel.c
+@@ -289,6 +289,8 @@ static struct ip6_tnl *ip6_tnl_create(struct net *net, struct ip6_tnl_parm *p)
+ if ((err = register_netdevice(dev)) < 0)
+ goto failed_free;
+
++ strcpy(t->parms.name, dev->name);
++
+ dev_hold(dev);
+ ip6_tnl_link(ip6n, t);
+ return t;
+@@ -1407,7 +1409,6 @@ ip6_tnl_dev_init_gen(struct net_device *dev)
+ struct ip6_tnl *t = netdev_priv(dev);
+
+ t->dev = dev;
+- strcpy(t->parms.name, dev->name);
+ dev->tstats = alloc_percpu(struct pcpu_tstats);
+ if (!dev->tstats)
+ return -ENOMEM;
+@@ -1487,6 +1488,7 @@ static void __net_exit ip6_tnl_destroy_tunnels(struct ip6_tnl_net *ip6n)
+ static int __net_init ip6_tnl_init_net(struct net *net)
+ {
+ struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id);
++ struct ip6_tnl *t = NULL;
+ int err;
+
+ ip6n->tnls[0] = ip6n->tnls_wc;
+@@ -1507,6 +1509,10 @@ static int __net_init ip6_tnl_init_net(struct net *net)
+ err = register_netdev(ip6n->fb_tnl_dev);
+ if (err < 0)
+ goto err_register;
++
++ t = netdev_priv(ip6n->fb_tnl_dev);
++
++ strcpy(t->parms.name, ip6n->fb_tnl_dev->name);
+ return 0;
+
+ err_register:
+--
+1.7.6.2
+
diff --git a/kernel.spec b/kernel.spec
index d7ea3cb..1b7cbaa 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -747,6 +747,9 @@ Patch13003: efi-dont-map-boot-services-on-32bit.patch
Patch13009: hvcs_pi_buf_alloc.patch
+#rhbz 751165
+Patch13010: ip6_tunnel-copy-parms.name-after-register_netdevice.patch
+
Patch20000: utrace.patch
# Flattened devicetree support
@@ -1404,6 +1407,9 @@ ApplyPatch efi-dont-map-boot-services-on-32bit.patch
ApplyPatch hvcs_pi_buf_alloc.patch
+#rhbz 751165
+ApplyPatch ip6_tunnel-copy-parms.name-after-register_netdevice.patch
+
ApplyPatch media-dib0700-correct-error-message.patch
# utrace.
@@ -2138,6 +2144,7 @@ fi
* Mon Nov 14 2011 Josh Boyer <jwboyer at redhat.com>
- Patch from Joshua Roys to add rtl8192* to modules.networking (rhbz 753645)
- Add patch for wacom tablets for Bastien Nocera (upstream 3797ef6b6)
+- Add patch to fix ip6_tunnel naming (rhbz 751165)
* Mon Nov 14 2011 Josh Boyer <jwboyer at redhat.com> 3.1.1-2
- CVE-2011-4131: nfs4_getfacl decoding kernel oops (rhbz 753236)
More information about the scm-commits
mailing list