[PATCH 10/17] ARM: update atag-to-fdt code to be endian agnostic
Russell King - ARM Linux
linux at arm.linux.org.uk
Sat Feb 9 07:05:25 EST 2013
On Fri, Feb 08, 2013 at 11:17:40PM +0000, Ben Dooks wrote:
> - if (atag->hdr.tag != ATAG_CORE ||
> - (atag->hdr.size != tag_size(tag_core) &&
> - atag->hdr.size != 2))
> + if (atag->hdr.tag != atag32_to_cpu(ATAG_CORE) ||
> + (atag->hdr.size != atag32_to_cpu(tag_size(tag_core)) &&
> + atag->hdr.size != atag32_to_cpu(2)))
This is wrong. You're saying that "ATAG_CORE" is in LE32 format. It
isn't. It's in CPU endian format. If you want to do this kind of thing,
you also need to define cpu_to_atag32() macros as well, otherwise this
will cause sparse warnings.
> - initrd_start = atag->u.initrd.start;
> - initrd_size = atag->u.initrd.size;
> + initrd_start = atag32_to_cpu(atag->u.initrd.start);
> + initrd_size = atag32_to_cpu(____atag->u.initrd.size);
Where did those four underscores come from? Has this been built?
More information about the linux-arm-kernel
mailing list