[U-Boot] [PATCH 2/2] PPC MPC83xx: Fix MPC8323ERDB build warning

Wolfgang Denk wd at denx.de
Thu Jun 27 08:22:34 CEST 2013


Dear Kim,

ping!!

In message <1371198068-3581-1-git-send-email-wd at denx.de> I wrote:
> Fix:
> 
> mpc8323erdb.c: In function 'mac_read_from_eeprom':
> mpc8323erdb.c:198:3: warning: dereferencing type-punned pointer will
> break strict-aliasing rules [-Wstrict-aliasing]
> 
> Signed-off-by: Wolfgang Denk <wd at denx.de>
> cc: Michael Barkowski <michael.barkowski at freescale.com>
> cc: Kim Phillips <kim.phillips at freescale.com>
> ---
>  board/freescale/mpc8323erdb/mpc8323erdb.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/board/freescale/mpc8323erdb/mpc8323erdb.c b/board/freescale/mpc8323erdb/mpc8323erdb.c
> index f29b2f4..533cb08 100644
> --- a/board/freescale/mpc8323erdb/mpc8323erdb.c
> +++ b/board/freescale/mpc8323erdb/mpc8323erdb.c
> @@ -195,7 +195,11 @@ int mac_read_from_eeprom(void)
>  		printf("\nEEPROM @ 0x%02x read FAILED!!!\n",
>  		       CONFIG_SYS_I2C_EEPROM_ADDR);
>  	} else {
> -		if (crc32(crc, buf, 24) == *(unsigned int *)&buf[24]) {
> +		unsigned int crc_buf;
> +
> +		memcpy(&crc_buf, &buf[24], sizeof(unsigned int));
> +
> +		if (crc32(crc, buf, 24) == crc_buf) {
>  			printf("Reading MAC from EEPROM\n");
>  			for (i = 0; i < 4; i++) {
>  				if (memcmp(&buf[i * 6], "\0\0\0\0\0\0", 6)) {
> -- 
> 1.7.11.7
> 

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Einstein argued that there must be simplified explanations of nature,
because God is not capricious or arbitrary. No  such  faith  comforts
the software engineer.                             - Fred Brooks, Jr.


More information about the U-Boot mailing list