diff options
author | Phil Oester <kernel@linuxace.com> | 2011-03-14 06:22:05 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-03-15 19:29:38 -0700 |
commit | e826eafa65c6f1f7c8db5a237556cebac57ebcc5 (patch) | |
tree | 4f88eb6bd3ae6e963ab02250f3051379e1d91276 | |
parent | fd0e435b0fe85622f167b84432552885a4856ac8 (diff) | |
download | op-kernel-dev-e826eafa65c6f1f7c8db5a237556cebac57ebcc5.zip op-kernel-dev-e826eafa65c6f1f7c8db5a237556cebac57ebcc5.tar.gz |
bonding: Call netif_carrier_off after register_netdevice
Bringing up a bond interface with all network cables disconnected
does not properly set the interface as DOWN because the call to
netif_carrier_off occurs too early in bond_init. The call needs
to occur after register_netdevice has set dev->reg_state to
NETREG_REGISTERED, so that netif_carrier_off will trigger the
call to linkwatch_fire_event.
Signed-off-by: Phil Oester <kernel@linuxace.com>
Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/bonding/bond_main.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index a93d941..66c98e6 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -4980,8 +4980,6 @@ static int bond_init(struct net_device *bond_dev) bond_set_lockdep_class(bond_dev); - netif_carrier_off(bond_dev); - bond_create_proc_entry(bond); list_add_tail(&bond->bond_list, &bn->dev_list); @@ -5051,6 +5049,8 @@ int bond_create(struct net *net, const char *name) res = register_netdevice(bond_dev); + netif_carrier_off(bond_dev); + out: rtnl_unlock(); if (res < 0) |