Subject: Re: [PATCH] ipv6: don't call addrconf_dst_alloc again when enable lo

From: chenweilong <[email-masked]>
Date: Thu, 2 Jan 2014 13:48:46 +0800

On 2013/12/31 11:57, Hannes Frederic Sowa wrote:
> On Wed, Jun 19, 2013 at 11:05:32PM -0700, David Miller wrote:
>> From: Gao feng <[email-masked]>
>> Date: Sun, 16 Jun 2013 11:14:30 +0800
>>
>>> If we disable all of the net interfaces, and enable
>>> un-lo interface before lo interface, we already allocated
>>> the addrconf dst in ipv6_add_addr. So we shouldn't allocate
>>> it again when we enable lo interface.
>>>
>>> Otherwise the message below will be triggered.
>>> unregister_netdevice: waiting for sit1 to become free. Usage count = 1
>>>
>>> This problem is introduced by commit 25fb6ca4ed9cad72f14f61629b68dc03c0d9713f
>>> "net IPv6 : Fix broken IPv6 routing table after loopback down-up"
>>>
>>> Signed-off-by: Gao feng <[email-masked]>
>>
>> This is the second such regression added by that commit :-/
>>
>> Applied and queue up for -stable, thanks.
> 
> Hmm, and this change also has a regression and breaks the original fix. :/
> 
> https://bugzilla.kernel.org/show_bug.cgi?id=67951
> 
> I tried to track it down but it seems pretty complicated. Maybe we have to
> special-case the take-down of the loopback device.
> 
> 
> 
Hi,

When I did the tests,If 'ifconfig lo down',all IPv6 connection broken,
but IPv4 connection were still OK.

Is it designed like that or a bug?

Thanks