From: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
To: Dave Martin <dave.martin-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
arm-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
Joseph Lo <josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH 3/3] ARM: tegra: make sure the pointer on 4 byte align when THUMB2_KERNEL enabled
Date: Tue, 16 Apr 2013 10:20:11 -0600 [thread overview]
Message-ID: <516D7A3B.9030404@wwwdotorg.org> (raw)
In-Reply-To: <20130416141252.GA2229-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
On 04/16/2013 08:13 AM, Dave Martin wrote:
> On Mon, Apr 15, 2013 at 04:50:55PM -0600, Stephen Warren wrote:
>> From: Joseph Lo <josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
>>
>> When building kernel with CONFIG_THUMB2_KERNEL, the data pointer in the
>> assembly may not on the 4 byte alignment. Then causing a data abort when
>> accessing the pointer. This patch add a ".align" flag in the head of the
>> pointer. And always using 32-bit ADR Thumb instruction to make sure it
>> won't build failure.
>>
>> Signed-off-by: Joseph Lo <josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
>> Signed-off-by: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
>> ---
>> arch/arm/mach-tegra/reset-handler.S | 1 +
>> arch/arm/mach-tegra/sleep.h | 3 ++-
>> 2 files changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/mach-tegra/reset-handler.S b/arch/arm/mach-tegra/reset-handler.S
>> index e6de88a..519a8c5 100644
>> --- a/arch/arm/mach-tegra/reset-handler.S
>> +++ b/arch/arm/mach-tegra/reset-handler.S
>> @@ -83,6 +83,7 @@ ENDPROC(tegra_resume)
>>
>> #ifdef CONFIG_CACHE_L2X0
>> .globl l2x0_saved_regs_addr
>> + .align
>> l2x0_saved_regs_addr:
>> .long 0
>> #endif
>> diff --git a/arch/arm/mach-tegra/sleep.h b/arch/arm/mach-tegra/sleep.h
>> index 4ffae54..8e9b6af 100644
>> --- a/arch/arm/mach-tegra/sleep.h
>> +++ b/arch/arm/mach-tegra/sleep.h
>> @@ -92,7 +92,8 @@
>>
>> #ifdef CONFIG_CACHE_L2X0
>> .macro l2_cache_resume, tmp1, tmp2, tmp3, phys_l2x0_saved_regs
>> - adr \tmp1, \phys_l2x0_saved_regs
>> + ARM( adr \tmp1, \phys_l2x0_saved_regs )
>> + THUMB( adr.w \tmp1, \phys_l2x0_saved_regs )
>
> Can you give an example of the assembler error you get without this?
arch/arm/mach-tegra/reset-handler.S: Assembler messages:
arch/arm/mach-tegra/reset-handler.S:78: Error: invalid immediate for
address calculation (value = 0x00000004)
This is with gcc-4.5.3, as:
GNU assembler (crosstool-NG hg_unknown-Y8jGNvr6ygZCnf0dxYVdog@public.gmane.org) 2.20.1.20100303
> The target symbol is local and the assembler can see where it is,
> so it should choose the correct variant for the adr instruction
> with no need for the ".w" suffix.
>
> If not, it could mean that there is a bug in the version of the
> assembler you're using.
True. Switching to the Ubuntu-packaged ARM cross-compiler that ships
with Ubuntu 12.10, I do not see this problem.
Still, many people probably still use older compilers.
> If it's definitely needed, you can append a Thumb-only .w suffix with
>
> W(adr) \tmp1, \phys_l2x0_saved_regs
>
> ...which is slightly neater.
Yes, that certainly works too, even without the .align change in
reset-handler.S.
Arnd, Olof, I guess let's drop this once patch from this series, but
apply the other two, and I'll send an updated version of this one patch.
Thanks.
next prev parent reply other threads:[~2013-04-16 16:20 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-15 22:50 [PATCH 1/3] ARM: tegra: fix build error when THUMB2_KERNEL enabled Stephen Warren
[not found] ` <1366066255-18192-1-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-04-15 22:50 ` [PATCH 2/3] ARM: tegra: fix relocation truncated " Stephen Warren
[not found] ` <1366066255-18192-2-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-04-17 17:01 ` Dave Martin
2013-04-18 16:32 ` Olof Johansson
2013-04-15 22:50 ` [PATCH 3/3] ARM: tegra: make sure the pointer on 4 byte align " Stephen Warren
[not found] ` <1366066255-18192-3-git-send-email-swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-04-16 14:13 ` Dave Martin
[not found] ` <20130416141252.GA2229-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2013-04-16 16:20 ` Stephen Warren [this message]
[not found] ` <516D7A3B.9030404-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-04-17 10:30 ` Dave Martin
[not found] ` <20130417102957.GA2249-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2013-04-17 16:22 ` Stephen Warren
[not found] ` <516ECC2A.1060308-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-04-17 16:57 ` Dave Martin
2013-04-18 16:32 ` Olof Johansson
2013-04-17 16:59 ` Dave Martin
2013-04-17 17:00 ` [PATCH 1/3] ARM: tegra: fix build error " Dave Martin
2013-04-18 16:31 ` Olof Johansson
-- strict thread matches above, loose matches on Subject: below --
2013-04-15 12:42 Joseph Lo
[not found] ` <1366029749-16476-1-git-send-email-josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2013-04-15 12:42 ` [PATCH 3/3] ARM: tegra: make sure the pointer on 4 byte align " Joseph Lo
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=516D7A3B.9030404@wwwdotorg.org \
--to=swarren-3lzwwm7+weoh9zmkesr00q@public.gmane.org \
--cc=arm-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=dave.martin-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=josephl-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).