summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorJohn W. Linville <linville@tuxdriver.com>2005-07-28 21:00:15 +0200
committerJeff Garzik <jgarzik@pobox.com>2005-07-31 06:37:29 +0200
commit6b38aefe924daf2e4fdd73b384f21c913f31b668 (patch)
treeb8b46e695f3b0685e1962f88a4115d8b69de8fb3 /drivers/net
parentThis patch adds a PHY Abstraction Layer to the Linux Kernel, enabling (diff)
downloadlinux-6b38aefe924daf2e4fdd73b384f21c913f31b668.tar.xz
linux-6b38aefe924daf2e4fdd73b384f21c913f31b668.zip
[PATCH] bonding: ALB -- allow slave to use bond's MAC address if its own MAC address conflicts
In ALB mode, allow new slave to use bond's MAC address if the new slave's MAC address is being used within the bond and no other slave is using the bond's MAC address. Signed-off-by: John W. Linville <linville@tuxdriver.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/bonding/bond_alb.c17
1 files changed, 6 insertions, 11 deletions
diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c
index 5ce606d9dc03..19e829b567d0 100644
--- a/drivers/net/bonding/bond_alb.c
+++ b/drivers/net/bonding/bond_alb.c
@@ -1106,18 +1106,13 @@ static int alb_handle_addr_collision_on_attach(struct bonding *bond, struct slav
}
}
- if (found) {
- /* a slave was found that is using the mac address
- * of the new slave
- */
- printk(KERN_ERR DRV_NAME
- ": Error: the hw address of slave %s is not "
- "unique - cannot enslave it!",
- slave->dev->name);
- return -EINVAL;
- }
+ if (!found)
+ return 0;
- return 0;
+ /* Try setting slave mac to bond address and fall-through
+ to code handling that situation below... */
+ alb_set_slave_mac_addr(slave, bond->dev->dev_addr,
+ bond->alb_info.rlb_enabled);
}
/* The slave's address is equal to the address of the bond.