[packages/kernel] - fix problems like 'unregister_netdevice: waiting for tap0 to become free. Usage count = 1'

arekm arekm at pld-linux.org
Mon Jun 3 10:49:03 CEST 2013


commit 258198a36cb2777500a9ecb88e7d38117b3541cf
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Mon Jun 3 10:48:58 2013 +0200

    - fix problems like 'unregister_netdevice: waiting for tap0 to become free. Usage count = 1'

 kernel-small_fixes.patch | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)
---
diff --git a/kernel-small_fixes.patch b/kernel-small_fixes.patch
index a59aaaf..3ccf000 100644
--- a/kernel-small_fixes.patch
+++ b/kernel-small_fixes.patch
@@ -217,3 +217,49 @@ index ecb6376..90c4dae 100644
  
  #endif /* CONFIG_IRQ_REMAP */
  
+From patchwork Mon Jun  3 08:16:21 2013
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: ipv6: assign rt6_info to inet6_ifaddr in init_loopback
+Date: Sun, 02 Jun 2013 22:16:21 -0000
+From: Gao feng <gaofeng at cn.fujitsu.com>
+X-Patchwork-Id: 248198
+Message-Id: <1370247381-3091-1-git-send-email-gaofeng at cn.fujitsu.com>
+To: davem at davemloft.net, yoshfuji at linux-ipv6.org
+Cc: netdev at vger.kernel.org, jasowang at redhat.com,
+ kumaran.4353 at gmail.com, Maruthi.Thotad at ap.sony.com,
+ Gao feng <gaofeng at cn.fujitsu.com>
+
+Commit 25fb6ca4ed9cad72f14f61629b68dc03c0d9713f
+"net IPv6 : Fix broken IPv6 routing table after loopback down-up"
+forgot to assign rt6_info to the inet6_ifaddr.
+When disable the net device, the rt6_info which allocated
+in init_loopback will not be destroied in __ipv6_ifa_notify.
+
+This will trigger the waring message below
+[23527.916091] unregister_netdevice: waiting for tap0 to become free. Usage count = 1
+
+Reported-by: Arkadiusz Miskiewicz <a.miskiewicz at gmail.com>
+Signed-off-by: Gao feng <gaofeng at cn.fujitsu.com>
+
+---
+net/ipv6/addrconf.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
+index d1b2d80..1bbf744 100644
+--- a/net/ipv6/addrconf.c
++++ b/net/ipv6/addrconf.c
+@@ -2658,8 +2658,10 @@ static void init_loopback(struct net_device *dev)
+ 			sp_rt = addrconf_dst_alloc(idev, &sp_ifa->addr, 0);
+ 
+ 			/* Failure cases are ignored */
+-			if (!IS_ERR(sp_rt))
++			if (!IS_ERR(sp_rt)) {
++				sp_ifa->rt = sp_rt;
+ 				ip6_ins_rt(sp_rt);
++			}
+ 		}
+ 		read_unlock_bh(&idev->lock);
+ 	}
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kernel.git/commitdiff/258198a36cb2777500a9ecb88e7d38117b3541cf



More information about the pld-cvs-commit mailing list