Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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()

+3 -3
+3 -3
arch/x86/kernel/entry_32.S
··· 1191 1191 pushl %eax 1192 1192 pushl %ecx 1193 1193 pushl %edx 1194 - movl 0xc(%esp), %edx 1195 - lea 0x4(%ebp), %eax 1194 + movl 0xc(%esp), %eax 1195 + lea 0x4(%ebp), %edx 1196 1196 movl (%ebp), %ecx 1197 - subl $MCOUNT_INSN_SIZE, %edx 1197 + subl $MCOUNT_INSN_SIZE, %eax 1198 1198 call prepare_ftrace_return 1199 1199 popl %edx 1200 1200 popl %ecx