From: Daniel Lezcano Date: Tue, 30 Oct 2007 22:38:57 +0000 (-0700) Subject: [NETNS]: fix net released by rcu callback X-Git-Tag: v2.6.24-rc2~69^2~8 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=310928d9633b04866a47f07eb43c498b2d82ebcb;p=linux-2.6-omap-h63xx.git [NETNS]: fix net released by rcu callback When a network namespace reference is held by a network subsystem, and when this reference is decremented in a rcu update callback, we must ensure that there is no more outstanding rcu update before trying to free the network namespace. In the normal case, the rcu_barrier is called when the network namespace is exiting in the cleanup_net function. But when a network namespace creation fails, and the subsystems are undone (like the cleanup), the rcu_barrier is missing. This patch adds the missing rcu_barrier. Signed-off-by: Daniel Lezcano Signed-off-by: David S. Miller --- diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c index 6f71db8c442..662e6ea1cec 100644 --- a/net/core/net_namespace.c +++ b/net/core/net_namespace.c @@ -112,6 +112,8 @@ out_undo: if (ops->exit) ops->exit(net); } + + rcu_barrier(); goto out; }