summaryrefslogtreecommitdiff
path: root/arch/x86/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-13 14:01:11 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-13 14:01:11 -0800
commit52bb452558a426ba265a19e6eadc66cf95613014 (patch)
treefe1fca1336151e14152c2c71dcb2f8bf50d55982 /arch/x86/kernel
parenta99abce2d92dd21faffc9439fa35d1519627872b (diff)
parentaee4e5f3d3abb7a2239dd02f6d8fb173413fd02f (diff)
Merge tag 'trace-fixes-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace
Pull tracing fixes from Steven Rostedt: "Here's two fixes: 1) Discovered by Fengguang Wu's tests. I changed the parameters to the function graph x86 prepare_ftrace_return call but forgot to update the call from entry_32 (i386 version). This patch corrects that. 2) I was tracing some code and found that the sched_switch tracepoint was showing tasks in the INTERRUPTIBLE state as RUNNING. This was due to the updates to convert preempt_count into a per_cpu variable. The tracepoint logic was made to use the tasks saved_preempt_count which could hold a stale "PREEMPT_ACTIVE", instead of using the current preempt_count() call" * tag 'trace-fixes-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing/sched: Check preempt_count() for current when reading task->state ftrace/x86: Update i386 call to prepare_ftrace_return()
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r--arch/x86/kernel/entry_32.S6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
index 344b63f18d14..1cf7c97ff175 100644
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -1191,10 +1191,10 @@ ENTRY(ftrace_graph_caller)
pushl %eax
pushl %ecx
pushl %edx
- movl 0xc(%esp), %edx
- lea 0x4(%ebp), %eax
+ movl 0xc(%esp), %eax
+ lea 0x4(%ebp), %edx
movl (%ebp), %ecx
- subl $MCOUNT_INSN_SIZE, %edx
+ subl $MCOUNT_INSN_SIZE, %eax
call prepare_ftrace_return
popl %edx
popl %ecx