diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
index 7c6b51a58968613010576f3bd35a3cb6c527db08..7f155175bba83a0c8083008ece1a56e265174984 100644
--- a/net/core/net_namespace.c
+++ b/net/core/net_namespace.c
@@ -224,7 +224,7 @@ static void net_free(struct net *net)
 		return;
 	}
 #endif
-	kfree(net->gen);
+	kfree(rcu_access_pointer(net->gen));
 	kmem_cache_free(net_cachep, net);
 }