From fbae617616e2c184ee2afd459cb75f4d90d55020 Mon Sep 17 00:00:00 2001 From: Jay Vosburgh Date: Mon, 9 Jul 2007 10:42:47 -0700 Subject: [PATCH] --- yaml --- r: 58750 b: refs/heads/master c: c2edacf80e155ef54ae4774379d461b60896bc2e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/net/bonding/bond_main.c | 11 +++++------ trunk/net/ipv6/addrconf.c | 3 +++ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 65ad043d2ac5..4e15a5077d4f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 89c0d26be7037cd5bbce3bbf12580ba70ed8f382 +refs/heads/master: c2edacf80e155ef54ae4774379d461b60896bc2e diff --git a/trunk/drivers/net/bonding/bond_main.c b/trunk/drivers/net/bonding/bond_main.c index 6287ffbda7f7..2bb70e052090 100644 --- a/trunk/drivers/net/bonding/bond_main.c +++ b/trunk/drivers/net/bonding/bond_main.c @@ -1390,6 +1390,11 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) goto err_free; } + res = netdev_set_master(slave_dev, bond_dev); + if (res) { + dprintk("Error %d calling netdev_set_master\n", res); + goto err_close; + } /* open the slave since the application closed it */ res = dev_open(slave_dev); if (res) { @@ -1397,12 +1402,6 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev) goto err_restore_mac; } - res = netdev_set_master(slave_dev, bond_dev); - if (res) { - dprintk("Error %d calling netdev_set_master\n", res); - goto err_close; - } - new_slave->dev = slave_dev; slave_dev->priv_flags |= IFF_BONDING; diff --git a/trunk/net/ipv6/addrconf.c b/trunk/net/ipv6/addrconf.c index f96ed76d8fa4..79b79f3de24c 100644 --- a/trunk/net/ipv6/addrconf.c +++ b/trunk/net/ipv6/addrconf.c @@ -2268,6 +2268,9 @@ static int addrconf_notify(struct notifier_block *this, unsigned long event, break; case NETDEV_UP: case NETDEV_CHANGE: + if (dev->flags & IFF_SLAVE) + break; + if (event == NETDEV_UP) { if (!netif_carrier_ok(dev)) { /* device is not ready yet. */