[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.1.10.0810240821080.25677@gandalf.stny.rr.com>
Date: Fri, 24 Oct 2008 08:22:05 -0400 (EDT)
From: Steven Rostedt <rostedt@...dmis.org>
To: Ingo Molnar <mingo@...e.hu>
cc: Rakib Mullick <rakib.mullick@...il.com>,
linux-kernel@...r.kernel.org,
Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: [PATCH -mm] ftrace : Fix section mismatch warning.
On Fri, 24 Oct 2008, Steven Rostedt wrote:
>
> The real solution should probably be this:
>
> (Compiled tested only)
>
> Signed-off-by: Steven Rostedt <srostedt@...hat.com>
> ---
> arch/x86/kernel/ftrace.c | 11 +++++------
> 1 file changed, 5 insertions(+), 6 deletions(-)
>
> Index: linux-tip.git/arch/x86/kernel/ftrace.c
> ===================================================================
> --- linux-tip.git.orig/arch/x86/kernel/ftrace.c 2008-10-23 19:23:28.000000000 -0400
> +++ linux-tip.git/arch/x86/kernel/ftrace.c 2008-10-24 08:11:57.000000000 -0400
> @@ -22,7 +22,7 @@
>
>
> /* Long is fine, even if it is only 4 bytes ;-) */
> -static unsigned long *ftrace_nop;
> +static unsigned long ftrace_nop[MCOUNT_INSN_SIZE];
I need to convert that to unsigned char ftrace_nop[]. I'll run some more
tests, and produce a real patch later.
-- Steve
>
> union ftrace_code_union {
> char code[MCOUNT_INSN_SIZE];
> @@ -126,8 +126,7 @@ int __init ftrace_dyn_arch_init(void *da
> */
> asm volatile (
> "jmp ftrace_test_jmp\n"
> - /* This code needs to stay around */
> - ".section .text, \"ax\"\n"
> + ".section .text.init, \"ax\"\n"
> "ftrace_test_jmp:"
> "jmp ftrace_test_p6nop\n"
> "nop\n"
> @@ -154,15 +153,15 @@ int __init ftrace_dyn_arch_init(void *da
> switch (faulted) {
> case 0:
> pr_info("ftrace: converting mcount calls to 0f 1f 44 00 00\n");
> - ftrace_nop = (unsigned long *)ftrace_test_p6nop;
> + memcpy(ftrace_nop, ftrace_test_p6nop, MCOUNT_INSN_SIZE);
> break;
> case 1:
> pr_info("ftrace: converting mcount calls to 66 66 66 66 90\n");
> - ftrace_nop = (unsigned long *)ftrace_test_nop5;
> + memcpy(ftrace_nop, ftrace_test_nop5, MCOUNT_INSN_SIZE);
> break;
> case 2:
> pr_info("ftrace: converting mcount calls to jmp . + 5\n");
> - ftrace_nop = (unsigned long *)ftrace_test_jmp;
> + memcpy(ftrace_nop, ftrace_test_jmp, MCOUNT_INSN_SIZE);
> break;
> }
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists