diff options
author | Ingo Molnar <mingo@elte.hu> | 2008-11-11 05:18:14 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-11-11 05:12:18 -0500 |
commit | 867f7fb3ebb831970847b179e7df5a9ab10da16d (patch) | |
tree | e4a7b3807955af5d9c6e4c00376d44b2c3b3b5ea | |
parent | f1c4be5edad3756212cbbbeab39428fe90c27109 (diff) |
tracing, x86: function return tracer, fix assembly constraints
fix:
arch/x86/kernel/ftrace.c: Assembler messages:
arch/x86/kernel/ftrace.c:140: Error: missing ')'
arch/x86/kernel/ftrace.c:140: Error: junk `(%ebp))' after expression
arch/x86/kernel/ftrace.c:141: Error: missing ')'
arch/x86/kernel/ftrace.c:141: Error: junk `(%ebp))' after expression
the [parent_replaced] is used in an =rm fashion, so that constraint
is correct in isolation - but [parent_old] aliases register %0 and uses
it in an addressing mode that is only valid with registers - so change
the constraint from =rm to =r.
This fixes the build failure.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | arch/x86/kernel/ftrace.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c index d68033bba223..9b2325a4d53c 100644 --- a/arch/x86/kernel/ftrace.c +++ b/arch/x86/kernel/ftrace.c | |||
@@ -151,7 +151,7 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr) | |||
151 | " .long 2b, 3b\n" | 151 | " .long 2b, 3b\n" |
152 | ".previous\n" | 152 | ".previous\n" |
153 | 153 | ||
154 | : [parent_replaced] "=rm" (parent), [old] "=r" (old), | 154 | : [parent_replaced] "=r" (parent), [old] "=r" (old), |
155 | [faulted] "=r" (faulted) | 155 | [faulted] "=r" (faulted) |
156 | : [parent_old] "0" (parent), [return_hooker] "r" (return_hooker) | 156 | : [parent_old] "0" (parent), [return_hooker] "r" (return_hooker) |
157 | : "memory" | 157 | : "memory" |