Message ID | 53E1E4C9.4010006@huawei.com |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
On Wed, Aug 06, 2014 at 04:18:17PM +0800, chenweilong wrote: > It fix the bug 67951 on bugzilla > https://bugzilla.kernel.org/show_bug.cgi?id=67951 > > The patch can't be applied directly, as it' used the function introduced > by "commit 94e187c0" ip6_rt_put(), that patch can't be applied directly > either. > I'm queuing this commit for the 3.11 kernel as well. Thanks! Cheers, -- Luís > ==================== > > From: Gao feng <gaofeng@cn.fujitsu.com> > > commit 33d99113b1102c2d2f8603b9ba72d89d915c13f5 upstream. > > This commit don't have a stable tag, but it fix the bug > no reply after loopback down-up.It's very worthy to be > applied to stable 3.4 kernels. > > The bug is 67951 on bugzilla > https://bugzilla.kernel.org/show_bug.cgi?id=67951 > > > CC: Sabrina Dubroca <sd@queasysnail.net> > CC: Hannes Frederic Sowa <hannes@stressinduktion.org> > Reported-by: Weilong Chen <chenweilong@huawei.com> > Signed-off-by: Weilong Chen <chenweilong@huawei.com> > Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com> > Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org> > Signed-off-by: David S. Miller <davem@davemloft.net> > [weilong: s/ip6_rt_put/dst_release] > Signed-off-by: Chen Weilong <chenweilong@huawei.com> > --- > net/ipv6/addrconf.c | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c > index abfa007..25399bf 100644 > --- a/net/ipv6/addrconf.c > +++ b/net/ipv6/addrconf.c > @@ -2435,8 +2435,18 @@ static void init_loopback(struct net_device *dev) > if (sp_ifa->flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE)) > continue; > > - if (sp_ifa->rt) > - continue; > + if (sp_ifa->rt) { > + /* This dst has been added to garbage list when > + * lo device down, release this obsolete dst and > + * reallocate a new router for ifa. > + */ > + if (sp_ifa->rt->dst.obsolete > 0) { > + dst_release(&sp_ifa->rt->dst); > + sp_ifa->rt = NULL; > + } else { > + continue; > + } > + } > > sp_rt = addrconf_dst_alloc(idev, &sp_ifa->addr, 0); > > -- 1.7.12 > > -- > To unsubscribe from this list: send the line "unsubscribe stable" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- 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
On Wed, Aug 06, 2014 at 04:18:17PM +0800, chenweilong wrote: > It fix the bug 67951 on bugzilla > https://bugzilla.kernel.org/show_bug.cgi?id=67951 > > The patch can't be applied directly, as it' used the function introduced > by "commit 94e187c0" ip6_rt_put(), that patch can't be applied directly > either. Much better, thanks for the fixed patch. greg k-h -- 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
On Wed, 2014-08-06 at 16:18 +0800, chenweilong wrote: > It fix the bug 67951 on bugzilla > https://bugzilla.kernel.org/show_bug.cgi?id=67951 > > The patch can't be applied directly, as it' used the function introduced > by "commit 94e187c0" ip6_rt_put(), that patch can't be applied directly > either. > > ==================== > > From: Gao feng <gaofeng@cn.fujitsu.com> > > commit 33d99113b1102c2d2f8603b9ba72d89d915c13f5 upstream. > > This commit don't have a stable tag, but it fix the bug > no reply after loopback down-up.It's very worthy to be > applied to stable 3.4 kernels. > > The bug is 67951 on bugzilla > https://bugzilla.kernel.org/show_bug.cgi?id=67951 [...] It looks like this is needed for 3.2.y as well, so I've queued it up. Thanks. Ben.
==================== From: Gao feng <gaofeng@cn.fujitsu.com> commit 33d99113b1102c2d2f8603b9ba72d89d915c13f5 upstream. This commit don't have a stable tag, but it fix the bug no reply after loopback down-up.It's very worthy to be applied to stable 3.4 kernels. The bug is 67951 on bugzilla https://bugzilla.kernel.org/show_bug.cgi?id=67951 CC: Sabrina Dubroca <sd@queasysnail.net> CC: Hannes Frederic Sowa <hannes@stressinduktion.org> Reported-by: Weilong Chen <chenweilong@huawei.com> Signed-off-by: Weilong Chen <chenweilong@huawei.com> Signed-off-by: Gao feng <gaofeng@cn.fujitsu.com> Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net> [weilong: s/ip6_rt_put/dst_release] Signed-off-by: Chen Weilong <chenweilong@huawei.com> --- net/ipv6/addrconf.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index abfa007..25399bf 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -2435,8 +2435,18 @@ static void init_loopback(struct net_device *dev) if (sp_ifa->flags & (IFA_F_DADFAILED | IFA_F_TENTATIVE)) continue; - if (sp_ifa->rt) - continue; + if (sp_ifa->rt) { + /* This dst has been added to garbage list when + * lo device down, release this obsolete dst and + * reallocate a new router for ifa. + */ + if (sp_ifa->rt->dst.obsolete > 0) { + dst_release(&sp_ifa->rt->dst); + sp_ifa->rt = NULL; + } else { + continue; + } + } sp_rt = addrconf_dst_alloc(idev, &sp_ifa->addr, 0);