When stopping the vxlan interface we detach it from the socket.
Use RCU_INIT_POINTER() and not rcu_assign_pointer() to do so.

Suggested-by: Stephen Hemminger <step...@networkplumber.org>
Signed-off-by: Mark Bloch <ma...@mellanox.com>
---
 drivers/net/vxlan.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index a6b5052..7cb21a0 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -1077,10 +1077,10 @@ static void vxlan_sock_release(struct vxlan_dev *vxlan)
 #if IS_ENABLED(CONFIG_IPV6)
        struct vxlan_sock *sock6 = rtnl_dereference(vxlan->vn6_sock);
 
-       rcu_assign_pointer(vxlan->vn6_sock, NULL);
+       RCU_INIT_POINTER(vxlan->vn6_sock, NULL);
 #endif
 
-       rcu_assign_pointer(vxlan->vn4_sock, NULL);
+       RCU_INIT_POINTER(vxlan->vn4_sock, NULL);
        synchronize_net();
 
        vxlan_vs_del_dev(vxlan);
-- 
1.8.4.3

Reply via email to