Commit 6b38aefe authored by John W. Linville's avatar John W. Linville Committed by Jeff Garzik
Browse files

[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: default avatarJohn W. Linville <linville@tuxdriver.com>
Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
parent 00db8189
Loading
Loading
Loading
Loading
+6 −11
Original line number Diff line number Diff line
@@ -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;

		/* 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.