fix net released by rcu callback
Subsystems (2)
PATCH 1/1 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 <[email protected]>
--- net/core/net_namespace.c | 2 ++ 1 file changed, 2 insertions(+)
net/core/net_namespace.c +2 -0
@@ -112,6 +112,8 @@ out_undo:if (ops->exit) ops->exit (net); } + +rcu_barrier (); goto out; }