[U-Boot] [PATCH v2] drivers/net/e1000.c: Fix GCC 4.6 build warnings

Anatolij Gustschin agust at denx.de
Tue Dec 20 18:36:39 CET 2011


Fix:
e1000.c: In function 'e1000_read_mac_addr':
e1000.c:1149:2: warning: dereferencing type-punned pointer
will break strict-aliasing rules [-Wstrict-aliasing]

e1000.c:1149:2: warning: dereferencing type-punned pointer
will break strict-aliasing rules [-Wstrict-aliasing]

Signed-off-by: Anatolij Gustschin <agust at denx.de>
Cc: Kyle Moffett <Kyle.D.Moffett at boeing.com>
---
v2:
 - use is_valid_ether_addr() for the check as suggested
   by Kyle Moffett

 drivers/net/e1000.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
index 6b71bd9..e726f39 100644
--- a/drivers/net/e1000.c
+++ b/drivers/net/e1000.c
@@ -1146,7 +1146,7 @@ e1000_read_mac_addr(struct eth_device *nic)
 		nic->enetaddr[5] ^= 1;
 
 #ifdef CONFIG_E1000_FALLBACK_MAC
-	if ( *(u32*)(nic->enetaddr) == 0 || *(u32*)(nic->enetaddr) == ~0 ) {
+	if (!is_valid_ether_addr(nic->enetaddr)) {
 		unsigned char fb_mac[NODE_ADDRESS_SIZE] = CONFIG_E1000_FALLBACK_MAC;
 
 		memcpy (nic->enetaddr, fb_mac, NODE_ADDRESS_SIZE);
-- 
1.7.5.4



More information about the U-Boot mailing list