Thread (8 messages) flat view 8 messages, 4 authors, 2014-06-06

Re: Multitude of dst obsolescense race conditions

From: Paul E. McKenney <hidden>
Date: 2014-06-06 22:17:58
Also in: lkml

On Fri, Jun 06, 2014 at 11:57:10AM -0700, Eric Dumazet wrote:
On Fri, 2014-06-06 at 11:12 -0700, Paul E. McKenney wrote:
quoted
It is probably just be me getting lost in the code, but I am not seeing
a synchronize_rcu(), call_rcu(), or synchronize_net() anywhere in
dst_release() or the things that it calls.  If there really isn't such
a call, then I don't see how the above code is safe in the case where
__sk_dst_set() is invoked on one CPU just after sk_dst_get() executes
the rcu_dereference() on some other CPU.
Well, this part is fine, dst_release() do not free dst that are
potentially stored in sk_dst_cache

Only the refcount is decremented.

The bug is elsewhere, we had another thread raising this issue on netdev
this morning.

I am cooking a patch to clear the mess.
Ah, thank you, sorry for the noise!

							Thanx, Paul
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help