Subject: [PATCH 8/9] bonding: use is_zero_ether_addr

From: Stephen Hemminger <[email-masked]>
Date: Fri, 12 Jun 2009 22:02:51 -0700

Remove bogus non-portable possibly unaligned way of testing
for zero addres..

Signed-off-by: Stephen Hemminger <[email-masked]>

--- a/drivers/net/bonding/bond_sysfs.c	2009-06-12 21:46:35.171609407 -0700
+++ b/drivers/net/bonding/bond_sysfs.c	2009-06-12 21:46:36.103625198 -0700
@@ -33,6 +33,7 @@
 #include <linux/ctype.h>
 #include <linux/inet.h>
 #include <linux/rtnetlink.h>
+#include <linux/etherdevice.h>
 #include <net/net_namespace.h>
 
 #include "bonding.h"
@@ -275,10 +276,9 @@ static ssize_t bonding_store_slaves(stru
 		/* 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 (!(*((u32 *) & (bond->dev->dev_addr[0])))) {
+		if (is_zero_ether_addr(bond->dev->dev_addr))
 			memcpy(bond->dev->dev_addr, dev->dev_addr,
 			       dev->addr_len);
-		}
 
 		/* Set the slave's MTU to match the bond */
 		original_mtu = dev->mtu;

--