From: Rabin Vincent <rabin@rab.in>
To: Catalin Marinas <catalin.marinas@arm.com>
Cc: linux-kernel@vger.kernel.org,
"Abhishek Sagar" <sagar.abhishek@gmail.com>,
"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
"Steven Rostedt" <rostedt@goodmis.org>,
"Ingo Molnar" <mingo@redhat.com>,
"Frederic Weisbecker" <fweisbec@gmail.com>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 06/10] ARM: ftrace: add Thumb-2 support
Date: Wed, 31 Mar 2010 23:55:18 +0530 [thread overview]
Message-ID: <20100331182518.GA30522@debian> (raw)
In-Reply-To: <tnxsk80r2dh.fsf@e102109-lin.cambridge.arm.com>
On Tue, Mar 16, 2010 at 10:23:54AM +0000, Catalin Marinas wrote:
> If the ftrace_stub isn't .globl, the code compiles fine. My approach
> would be something like this:
New patch below:
>From bf828a0c069b1bb3f6bf4e68f1dceecab396c286 Mon Sep 17 00:00:00 2001
From: Rabin Vincent <rabin@rab.in>
Date: Sun, 14 Feb 2010 01:18:34 +0530
Subject: [PATCH 06/10] ARM: ftrace: add Thumb-2 support
Fix the mcount routines to build and run on a kernel built with the
Thumb-2 instruction set by correcting the following errors using the
fixes suggested by Catalin Marinas:
- Problem: The following assembler errors appear at the "adr r0,
ftrace_stub" instruction:
entry-common.S: Assembler messages:
entry-common.S:179: Error: invalid immediate for address calculation (value = 0x00000004)
Fix: The errors don't occur with a non-global symbol, so use one.
- Problem: The "mov lr, pc" does not set the lsb when storing the pc in
lr. The called function returns with "bx lr", and the mode changes
to ARM.
Fix: Add a label on the return address and use "adr lr, BSYM(label)".
We don't modify the old mcount because it won't be built when using
Thumb-2.
Cc: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Rabin Vincent <rabin@rab.in>
---
arch/arm/kernel/entry-common.S | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index c7a8c20..f5e75de 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -167,7 +167,7 @@ ENTRY(__gnu_mcount_nc)
stmdb sp!, {r0-r3, lr}
ldr r0, =ftrace_trace_function
ldr r2, [r0]
- adr r0, ftrace_stub
+ adr r0, .Lftrace_stub
cmp r0, r2
bne gnu_trace
ldmia sp!, {r0-r3, ip, lr}
@@ -177,8 +177,9 @@ gnu_trace:
ldr r1, [sp, #20] @ lr of instrumented routine
mov r0, lr
sub r0, r0, #MCOUNT_INSN_SIZE
- mov lr, pc
+ adr lr, BSYM(1f)
mov pc, r2
+1:
ldmia sp!, {r0-r3, ip, lr}
mov pc, ip
ENDPROC(__gnu_mcount_nc)
@@ -213,6 +214,7 @@ ENDPROC(mcount)
#endif /* CONFIG_DYNAMIC_FTRACE */
ENTRY(ftrace_stub)
+.Lftrace_stub:
mov pc, lr
ENDPROC(ftrace_stub)
--
1.7.0
next prev parent reply other threads:[~2010-03-31 18:25 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-13 6:49 [PATCH 00/10] ARM: ftrace: cleanups, Thumb-2, and dynamic ftrace (v2) Rabin Vincent
2010-03-13 6:49 ` [PATCH 01/10] ARM: ftrace: clean up mcount assembly indentation Rabin Vincent
2010-03-13 6:49 ` [PATCH 02/10] ARM: ftrace: document mcount formats Rabin Vincent
2010-03-13 6:49 ` [PATCH 03/10] ftrace: allow building without frame pointers Rabin Vincent
2010-03-13 17:36 ` Steven Rostedt
2010-03-15 18:45 ` Rabin Vincent
2010-03-14 16:56 ` Steven Rostedt
2010-03-13 6:49 ` [PATCH 04/10] ARM: " Rabin Vincent
2010-03-13 17:38 ` Steven Rostedt
2010-03-14 16:56 ` Steven Rostedt
2010-03-17 16:16 ` Catalin Marinas
2010-03-13 6:49 ` [PATCH 05/10] ARM: ftrace: add ENDPROC annotations Rabin Vincent
2010-03-13 8:45 ` Russell King - ARM Linux
2010-04-21 19:23 ` Rabin Vincent
2010-08-10 17:07 ` Catalin Marinas
2010-08-10 19:11 ` Rabin Vincent
2010-03-13 6:49 ` [PATCH 06/10] ARM: ftrace: add Thumb-2 support Rabin Vincent
2010-03-14 22:30 ` Catalin Marinas
2010-03-15 18:32 ` Rabin Vincent
2010-03-16 10:23 ` Catalin Marinas
2010-03-31 18:25 ` Rabin Vincent [this message]
2010-04-23 15:37 ` Catalin Marinas
2010-03-13 6:49 ` [PATCH 07/10] ftrace: pass KBUILD_CFLAGS to record_mcount.pl Rabin Vincent
2010-03-13 17:41 ` Steven Rostedt
2010-03-14 16:56 ` Steven Rostedt
2010-03-31 18:45 ` Rabin Vincent
2010-08-03 16:42 ` Rabin Vincent
2010-08-06 15:31 ` Frederic Weisbecker
2010-08-06 20:23 ` Steven Rostedt
2010-08-07 5:33 ` Rabin Vincent
2010-08-07 12:57 ` Steven Rostedt
2010-03-13 6:49 ` [PATCH 08/10] ARM: ftrace: fix and update dynamic ftrace Rabin Vincent
2010-03-13 17:42 ` Steven Rostedt
2010-03-14 16:56 ` Steven Rostedt
2010-03-13 6:49 ` [PATCH 09/10] ARM: ftrace: add Thumb-2 support to " Rabin Vincent
2010-03-13 6:49 ` [PATCH 10/10] ARM: ftrace: enable " Rabin Vincent
2010-04-21 19:26 ` [PATCH 00/10] ARM: ftrace: cleanups, Thumb-2, and dynamic ftrace (v2) Rabin Vincent
-- strict thread matches above, loose matches on Subject: below --
2010-02-13 19:48 [PATCH 00/10] ARM: ftrace: cleanups, Thumb-2, and dynamic ftrace Rabin Vincent
2010-02-13 19:48 ` [PATCH 06/10] ARM: ftrace: add Thumb-2 support Rabin Vincent
2010-02-13 23:27 ` Catalin Marinas
2010-02-14 16:38 ` Rabin Vincent
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=20100331182518.GA30522@debian \
--to=rabin@rab.in \
--cc=catalin.marinas@arm.com \
--cc=fweisbec@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=rostedt@goodmis.org \
--cc=sagar.abhishek@gmail.com \
--cc=u.kleine-koenig@pengutronix.de \
/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).