[U-Boot] [PATCH v2] macb: fix compile warning

Reinhard Meyer u-boot at emk-elektronik.de
Thu Jun 9 21:02:53 CEST 2011


Dear Andreas Bießmann,
> This patch fixes following compile warning:
>
> ---8<---
> macb.c: In function 'macb_write_hwaddr':
> macb.c:525:2: warning: dereferencing type-punned pointer will break strict-aliasing rules
> --->8---
>
> Signed-off-by: Andreas Bießmann<andreas.devel at gmail.com>
Tested-by: Reinhard Meyer<u-boot at emk-elektronik.de>
> ---
> BEWARE! this patch is only compile tested!
Works well with top9000(at91sam9xe). Thanks.
>
> changes since v1:
>   - use correct eth_device
>
>   drivers/net/macb.c |    5 +++--
>   1 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/macb.c b/drivers/net/macb.c
> index 72ea1fc..c63eea9 100644
> --- a/drivers/net/macb.c
> +++ b/drivers/net/macb.c
> @@ -522,9 +522,10 @@ static int macb_write_hwaddr(struct eth_device *dev)
>   	u16 hwaddr_top;
>
>   	/* set hardware address */
> -	hwaddr_bottom = cpu_to_le32(*((u32 *)dev->enetaddr));
> +	hwaddr_bottom = dev->enetaddr[0] | dev->enetaddr[1]<<  8 |
> +			dev->enetaddr[2]<<  16 | dev->enetaddr[3]<<  24;
>   	macb_writel(macb, SA1B, hwaddr_bottom);
> -	hwaddr_top = cpu_to_le16(*((u16 *)(dev->enetaddr + 4)));
> +	hwaddr_top = dev->enetaddr[4] | dev->enetaddr[5]<<  8;
>   	macb_writel(macb, SA1T, hwaddr_top);
>   	return 0;
>   }

Applied to u-boot-atmel/master. Thanks,
Reinhard


More information about the U-Boot mailing list