Subject: Re: [PATCH] bonding: check for assigned mac before adopting the slaves mac address

From: Jay Vosburgh <[email-masked]>
Date: Wed, 01 Dec 2010 11:21:08 -0800

From: David Strand <[email-masked]>

Restore the check for an unassigned mac address before adopting the
first slaves as it's own. The change in behavior was introduced by:

commit c20811a79e671a6a1fe86a8c1afe04aca8a7f085
Author: Jiri Pirko <[email-masked]>

    bonding: move dev_addr cpy to bond_enslave

Signed-off-by: David Strand <[email-masked]>
Signed-off-by: Jay Vosburgh <[email-masked]>

---
diff -uprN a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
--- a/drivers/net/bonding/bond_main.c	2010-11-24 11:36:58.125640000 -0800
+++ b/drivers/net/bonding/bond_main.c	2010-12-01 10:12:33.728640001 -0800
@@ -1576,7 +1576,7 @@ int bond_enslave(struct net_device *bond

 	/* If this is the first slave, then we need to set the master's hardware
 	 * address to be the same as the slave's. */
-	if (bond->slave_cnt == 0)
+	if (is_zero_ether_addr(bond->dev->dev_addr))
 		memcpy(bond->dev->dev_addr, slave_dev->dev_addr,
 		       slave_dev->addr_len);