Thread (28 messages) 28 messages, 5 authors, 2017-08-13

Re: unregister_netdevice: waiting for eth0 to become free. Usage count = 1

flat view

From: Wei Wang <hidden>
Date: 2017-08-12 19:28:25
Also in: lkml

On Fri, Aug 11, 2017 at 8:07 PM, John Stultz [off-list ref] wrote:
On Fri, Aug 11, 2017 at 5:31 PM, John Stultz [off-list ref] wrote:
quoted
On Fri, Aug 11, 2017 at 5:10 PM, Wei Wang [off-list ref] wrote:
quoted
quoted
If after Cong's fix, the issue still happens, could you help try the
patch attached and collect all logs when you try the reproduce the
issue? It would be great to have logs for both success case and the
failure case.

Thanks so much for your help.
I think we have a potential fix for this issue.
Martin and I found that when addrconf_dst_alloc() creates a rt6, it is
possible that rt6->dst.dev points to loopback device while
rt6->rt6i_idev->dev points to a real device.
When the real device goes down, the current fib6 clean up code only
checks for rt6->dst.dev and assumes rt6->rt6i_idev->dev is the same.
That leaves unreleased refcnt on the real device if rt6->dst.dev
points to loopback dev.

The attached potential fix is tested by Martin and made sure it fixes his issue.

John,
It will be great if you can also give it a try and see if it fixes the
issue on your side before I submit an official patch.
So yes, sorry I haven't been able to get back quicker on the other
patches sent, was mucking about in other work.

So yea, this patch  (potential fix for unregister_netdevice()) seems
to avoid the issue.

I'm going to do some further testing, but its looking good so far.
Looks good so far! I've not hit the issue yet.

Thanks so much for sorting out a fix!

If its useful:
Tested-by: John Stultz <redacted>

thanks again
-john
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help