Messages in this thread | | | Date | Fri, 24 Oct 2008 08:22:05 -0400 (EDT) | From | Steven Rostedt <> | 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@redhat.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; > } > >
| |