浏览代码

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()
Linus Torvalds 10 年之前
父节点
当前提交
52bb452558
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      arch/x86/kernel/entry_32.S

+ 3 - 3
arch/x86/kernel/entry_32.S

@@ -1191,10 +1191,10 @@ ENTRY(ftrace_graph_caller)
 	pushl %eax
 	pushl %eax
 	pushl %ecx
 	pushl %ecx
 	pushl %edx
 	pushl %edx
-	movl 0xc(%esp), %edx
-	lea 0x4(%ebp), %eax
+	movl 0xc(%esp), %eax
+	lea 0x4(%ebp), %edx
 	movl (%ebp), %ecx
 	movl (%ebp), %ecx
-	subl $MCOUNT_INSN_SIZE, %edx
+	subl $MCOUNT_INSN_SIZE, %eax
 	call prepare_ftrace_return
 	call prepare_ftrace_return
 	popl %edx
 	popl %edx
 	popl %ecx
 	popl %ecx