On Tue, Jun 21 2011, David Brown wrote:

> 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];

Ugh.  How about if I don't replace a broken version with a different
broken version.

        while (__n) {
                __n--;
                d[__n] = s[__n];
        }

Now, I don't need any extra fields in my DTB, and it correctly inserts
the ATAG values.

David

-- 
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to