[U-Boot] [PATCH v2] net: tsec - fix dereferencing type-punned pointer will break strict-aliasing rules warning

Ben Warren biggerbadderben at gmail.com
Tue Jul 21 06:49:42 CEST 2009


Kim,

Kim Phillips wrote:
> fix this gcc 4.4 warning:
>
> tsec.c: In function 'tsec_init':
> tsec.c:200: warning: dereferencing type-punned pointer will break strict-aliasing rules
>
> Signed-off-by: Kim Phillips <kim.phillips at freescale.com>
> ---
> this is the endian-correct version
>
>  drivers/net/tsec.c |    5 ++++-
>  1 files changed, 4 insertions(+), 1 deletions(-)
>
> diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c
> index 63fc02e..5dc05e5 100644
> --- a/drivers/net/tsec.c
> +++ b/drivers/net/tsec.c
> @@ -197,7 +197,10 @@ int tsec_init(struct eth_device *dev, bd_t * bd)
>  	for (i = 0; i < MAC_ADDR_LEN; i++) {
>  		tmpbuf[MAC_ADDR_LEN - 1 - i] = dev->enetaddr[i];
>  	}
> -	regs->macstnaddr1 = *((uint *) (tmpbuf));
> +	tempval = (tmpbuf[0] << 24) | (tmpbuf[1] << 16) | (tmpbuf[2] << 8) |
> +		  tmpbuf[3];
> +
> +	regs->macstnaddr1 = tempval;
>  
>  	tempval = *((uint *) (tmpbuf + 4));
>  
>   
Applied to net repo.

thanks,
Ben


More information about the U-Boot mailing list