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

login
register
mail settings
Submitter Anatolij Gustschin
Date Dec. 20, 2011, 5:36 p.m.
Message ID <1324402599-781-1-git-send-email-agust@denx.de>
Download mbox | patch
Permalink /patch/132472/
State Accepted
Headers show

Comments

Anatolij Gustschin - Dec. 20, 2011, 5:36 p.m.
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@denx.de>
Cc: Kyle Moffett <Kyle.D.Moffett@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(-)
Kyle Moffett - Dec. 20, 2011, 5:44 p.m.
On Dec 20, 2011, at 12:36, Anatolij Gustschin wrote:
> 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@denx.de>
> Cc: Kyle Moffett <Kyle.D.Moffett@boeing.com>

Looks great, thanks!

Acked-by: Kyle Moffett <Kyle.D.Moffett@boeing.com>

Cheers,
Kyle Moffett

--
Curious about my work on the Debian powerpcspe port?
I'm keeping a blog here: http://pureperl.blogspot.com/
Wolfgang Denk - Dec. 20, 2011, 10:21 p.m.
Dear Anatolij Gustschin,

In message <1324402599-781-1-git-send-email-agust@denx.de> you wrote:
> 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@denx.de>
> Cc: Kyle Moffett <Kyle.D.Moffett@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(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Patch

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);