[NETNS]: Don't panic on creating the namespace's loopback
authorPavel Emelyanov <xemul@openvz.org>
Mon, 15 Oct 2007 19:55:33 +0000 (12:55 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 15 Oct 2007 19:55:33 +0000 (12:55 -0700)
When the loopback device is failed to initialize inside the new
namespaces, panic() is called. Do not do it when the namespace
in question is not the init_net.

Plus cleanup the error path a bit.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/loopback.c

index be25aa33971cd5f51a2fbff62dcd807420f623fd..662b8d16803ce7fec85f59af645b60aabee75c41 100644 (file)
@@ -265,17 +265,16 @@ static __net_init int loopback_net_init(struct net *net)
        if (err)
                goto out_free_netdev;
 
-       err = 0;
        net->loopback_dev = dev;
+       return 0;
 
-out:
-       if (err)
-               panic("loopback: Failed to register netdevice: %d\n", err);
-       return err;
 
 out_free_netdev:
        free_netdev(dev);
-       goto out;
+out:
+       if (net == &init_net)
+               panic("loopback: Failed to register netdevice: %d\n", err);
+       return err;
 }
 
 static __net_exit void loopback_net_exit(struct net *net)