Message ID | 20101025090716.315678235@linux.vnet.ibm.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Mon, Oct 25, 2010 at 11:06:43AM +0200, Ursula Braun wrote: > Subject: [patch 1/1] [PATCH BUG_FIX] ipv6: fix refcnt problem related to POSTDAD state > > From: Ursula Braun <ursula.braun@de.ibm.com> > > After running this bonding setup script > modprobe bonding miimon=100 mode=0 max_bonds=1 > ifconfig bond0 10.1.1.1/16 > ifenslave bond0 eth1 > ifenslave bond0 eth3 > on s390 with qeth-driven slaves, modprobe -r fails with this message > unregister_netdevice: waiting for bond0 to become free. Usage count = 1 > due to twice detection of duplicate address. > Problem is caused by a missing decrease of ifp->refcnt in addrconf_dad_failure. > An extra call of in6_ifa_put(ifp) solves it. > Problem has been introduced with commit f2344a131bccdbfc5338e17fa71a807dee7944fa. > > Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com> > Cc: David S. Miller <davem@davemloft.net> Acked-by: Herbert Xu <herbert@gondor.apana.org.au> Thanks for catching this!
From: Herbert Xu <herbert@gondor.apana.org.au> Date: Mon, 25 Oct 2010 16:01:32 -0700 > On Mon, Oct 25, 2010 at 11:06:43AM +0200, Ursula Braun wrote: >> Subject: [patch 1/1] [PATCH BUG_FIX] ipv6: fix refcnt problem related to POSTDAD state >> >> From: Ursula Braun <ursula.braun@de.ibm.com> >> >> After running this bonding setup script >> modprobe bonding miimon=100 mode=0 max_bonds=1 >> ifconfig bond0 10.1.1.1/16 >> ifenslave bond0 eth1 >> ifenslave bond0 eth3 >> on s390 with qeth-driven slaves, modprobe -r fails with this message >> unregister_netdevice: waiting for bond0 to become free. Usage count = 1 >> due to twice detection of duplicate address. >> Problem is caused by a missing decrease of ifp->refcnt in addrconf_dad_failure. >> An extra call of in6_ifa_put(ifp) solves it. >> Problem has been introduced with commit f2344a131bccdbfc5338e17fa71a807dee7944fa. >> >> Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com> >> Cc: David S. Miller <davem@davemloft.net> > > Acked-by: Herbert Xu <herbert@gondor.apana.org.au> > > Thanks for catching this! Applied, thanks everyone. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
--- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -1426,8 +1426,10 @@ void addrconf_dad_failure(struct inet6_i { struct inet6_dev *idev = ifp->idev; - if (addrconf_dad_end(ifp)) + if (addrconf_dad_end(ifp)) { + in6_ifa_put(ifp); return; + } if (net_ratelimit()) printk(KERN_INFO "%s: IPv6 duplicate address %pI6c detected!\n",