
27 Jul
2012
27 Jul
'12
11:26 p.m.
Dear Wolfgang Denk,
Dear Marek Vasut,
In message 1343419212-18716-1-git-send-email-marex@denx.de you wrote:
cpu.c: In function ‘check_CPU’: cpu.c:256:2: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
Signed-off-by: Marek Vasut marex@denx.de Cc: Wolfgang Denk wd@denx.de
arch/powerpc/cpu/mpc8xx/cpu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
...
- k = (immr << 16) | *((ushort *) & immap->im_cpm.cp_dparam[0xB0]);
- k = (immr << 16) | readw(&immap->im_cpm.cp_dparam[0xB0]);
I think this is wrong. readw() is a little endian I/O accessor, but PPC is all big-endian.
So in_be32 it is, I guess?
Guess this was untested?
Of course it was not. Had trouble even sending this via the crappy cellular connection on a train ;-)
Thanks for catching it, glad you reviewed this.
Best regards,
Wolfgang Denk
Best regards, Marek Vasut