All of lore.kernel.org
 help / color / mirror / Atom feed
From: davidb@codeaurora.org (David Brown)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 4/4] ARM: zImage: allow supplementing appended DTB with traditional ATAG data
Date: Tue, 21 Jun 2011 15:58:23 -0700	[thread overview]
Message-ID: <8yaliwueqr4.fsf@huya.qualcomm.com> (raw)
In-Reply-To: <1308632955-11070-5-git-send-email-nico@fluxnic.net> (Nicolas Pitre's message of "Tue, 21 Jun 2011 01:09:15 -0400")

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.

WARNING: multiple messages have this Message-ID (diff)
From: David Brown <davidb-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
To: Nicolas Pitre <nico-vtqb6HGKxmzR7s880joybQ@public.gmane.org>
Cc: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>,
	devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Subject: Re: [PATCH 4/4] ARM: zImage: allow supplementing appended DTB with traditional ATAG data
Date: Tue, 21 Jun 2011 15:58:23 -0700	[thread overview]
Message-ID: <8yaliwueqr4.fsf@huya.qualcomm.com> (raw)
In-Reply-To: <1308632955-11070-5-git-send-email-nico-vtqb6HGKxmzR7s880joybQ@public.gmane.org> (Nicolas Pitre's message of "Tue, 21 Jun 2011 01:09:15 -0400")

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.

  parent reply	other threads:[~2011-06-21 22:58 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-21  5:09 [PATCH 0/4] allow DTB to be appended to the ARM zImage with ATAG conversion Nicolas Pitre
2011-06-21  5:09 ` Nicolas Pitre
2011-06-21  5:09 ` [PATCH 1/4] ARM: zImage: ensure it is always a multiple of 64 bits in size Nicolas Pitre
2011-06-21  5:09   ` Nicolas Pitre
2011-06-21  5:09 ` [PATCH 2/4] ARM: zImage: Allow the appending of a device tree binary Nicolas Pitre
2011-06-21  5:09   ` Nicolas Pitre
2011-06-21  5:09 ` [PATCH 3/4] ARM: zImage: make sure appended DTB doesn't get overwritten by kernel .bss Nicolas Pitre
2011-06-21  5:09   ` Nicolas Pitre
2011-06-21  5:09 ` [PATCH 4/4] ARM: zImage: allow supplementing appended DTB with traditional ATAG data Nicolas Pitre
2011-06-21  5:09   ` Nicolas Pitre
2011-06-21  7:00   ` Shawn Guo
2011-06-21  7:00     ` Shawn Guo
2011-06-21 17:32     ` David Brown
2011-06-21 17:32       ` David Brown
2011-06-21 22:58   ` David Brown [this message]
2011-06-21 22:58     ` David Brown
2011-06-21 23:13     ` David Brown
2011-06-21 23:13       ` David Brown
2011-06-21 23:22       ` Warner Losh
2011-06-21 23:22         ` Warner Losh
2011-06-21 23:35       ` Nicolas Pitre
2011-06-21 23:35         ` Nicolas Pitre
2011-06-21 21:59 ` [PATCH 0/4] allow DTB to be appended to the ARM zImage with ATAG conversion David Brown
2011-06-21 21:59   ` David Brown

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8yaliwueqr4.fsf@huya.qualcomm.com \
    --to=davidb@codeaurora.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.