From: Linus Torvalds Date: Thu, 11 Jun 2009 02:58:10 +0000 (-0700) Subject: Merge branch 'tracing-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel... X-Git-Tag: v2.6.31-rc1~400 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=991ec02cdca33b03a132a0cacfe6f0aa0be9aa8d;p=profile%2Fivi%2Fkernel-x86-ivi.git Merge branch 'tracing-urgent-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip * 'tracing-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: function-graph: always initialize task ret_stack function-graph: move initialization of new tasks up in fork function-graph: add memory barriers for accessing task's ret_stack function-graph: enable the stack after initialization of other variables function-graph: only allocate init tasks if it was not already done Manually fix trivial conflict in kernel/trace/ftrace.c --- 991ec02cdca33b03a132a0cacfe6f0aa0be9aa8d diff --cc kernel/trace/ftrace.c index d6973df,bb081f3..bb60732 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c @@@ -3374,11 -2738,16 +3376,16 @@@ void unregister_ftrace_graph(void /* Allocate a return stack for newly created task */ void ftrace_graph_init_task(struct task_struct *t) { + /* Make sure we do not use the parent ret_stack */ + t->ret_stack = NULL; + - if (atomic_read(&ftrace_graph_active)) { + if (ftrace_graph_active) { - t->ret_stack = kmalloc(FTRACE_RETFUNC_DEPTH + struct ftrace_ret_stack *ret_stack; + + ret_stack = kmalloc(FTRACE_RETFUNC_DEPTH * sizeof(struct ftrace_ret_stack), GFP_KERNEL); - if (!t->ret_stack) + if (!ret_stack) return; t->curr_ret_stack = -1; atomic_set(&t->tracing_graph_pause, 0);