Revert "net-loopback: set lo dev initial state to UP"
authorPetr Machata <petrm@nvidia.com>
Tue, 9 Feb 2021 17:52:04 +0000 (18:52 +0100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 11 Feb 2021 21:10:44 +0000 (13:10 -0800)
In commit c9dca822c729 ("net-loopback: set lo dev initial state to UP"),
linux started automatically bringing up the loopback device of a newly
created namespace. However, an existing user script might reasonably have
the following stanza when creating a new namespace -- and in fact at least
tools/testing/selftests/net/fib_nexthops.sh in Linux's very own testsuite
does:

 # set -e
 # ip netns add foo
 # ip -netns foo addr add 127.0.0.1/8 dev lo
 # ip -netns foo link set lo up
 # set +e

This will now fail, because the kernel reasonably rejects "ip addr add" of
a duplicate address. The described change of behavior therefore constitutes
a breakage. Revert it.

Fixes: c9dca822c729 ("net-loopback: set lo dev initial state to UP")
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/loopback.c

index 24487ec17f8b125ab260484f4f7ea83cdadad48d..a1c77cc0041657de79b562c84408acabf9e8b99b 100644 (file)
@@ -219,12 +219,6 @@ static __net_init int loopback_net_init(struct net *net)
 
        BUG_ON(dev->ifindex != LOOPBACK_IFINDEX);
        net->loopback_dev = dev;
-
-       /* bring loopback device UP */
-       rtnl_lock();
-       dev_open(dev, NULL);
-       rtnl_unlock();
-
        return 0;
 
 out_free_netdev: