Subject: Re: [Patch net-next] vxlan: do real refcnt for vn_sock

From: Cong Wang <[email-masked]>
Date: Wed, 29 May 2013 12:01:12 +0800

On Tue, 2013-05-28 at 19:07 +0800, Cong Wang wrote:
> From: Cong Wang <[email-masked]>
> 
> In commit 553675fb5e9ce3d71a (vxlan: listen on multiple ports),
> we use kfree_rcu() to free ->vn_sock, but a) there is no use
> of RCU API to access this filed, b) RCU is not enough to do refcnt
> here, because in vxlan_leave_group() we drop RTNL lock before
> locking the socket, it could be possible that this field is
> freed during this period.
> 
> So, instead making things complex, just do basic refcnt for
> the ->vn_sock, like we do for others.

BTW, this patch fixes a real crash when I test vxlan over IPv6, although
I can't reproduce it with IPv4.