[PATCH 4/4] ARM: zImage: allow supplementing appended DTB with traditional ATAG data
David Brown
davidb at codeaurora.org
Tue Jun 21 18:58:23 EDT 2011
On Mon, Jun 20 2011, Nicolas Pitre wrote:
> +void *memmove(void *__dest, __const void *__src, size_t __n)
> +{
> + unsigned char *d = __dest;
> + const unsigned char *s = __src;
> +
> + if (__dest == __src)
> + return __dest;
> +
> + if (__dest < __src)
> + return memcpy(__dest, __src, __n);
> +
> + while (--__n >= 0)
> + d[__n] = s[__n];
> +
> + return __dest;
> +}
Ahh, found it. size_t is unsigned, so the while loop never terminates.
Something like:
for (; __n; __n--)
d[__n] = s[__n];
makes that work for me.
This allows me to not need to pad or have any of the chosen attributes.
I do need to have a memory attribute, however, and I'll see if I can
figure out what is happening there.
Fun debugging when the loop overwrites the code itself, but it keeps
working because it is in the cache.
David
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
More information about the linux-arm-kernel
mailing list