linux/kernel/trace
Lai Jiangshan 6f3b34402e ring_buffer: reset write when reserve buffer fail
Impact: reset struct buffer_page.write when interrupt storm

if struct buffer_page.write is not reset, any succedent committing
will corrupted ring_buffer:

static inline void
rb_set_commit_to_write(struct ring_buffer_per_cpu *cpu_buffer)
{
	......
		cpu_buffer->commit_page->commit =
			cpu_buffer->commit_page->write;
	......
}

when "if (RB_WARN_ON(cpu_buffer, next_page == reader_page))", ring_buffer
is disabled, but some reserved buffers may haven't been committed.
we need reset struct buffer_page.write.

when "if (unlikely(next_page == cpu_buffer->commit_page))", ring_buffer
is still available, we should not corrupt it.

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-01-15 09:46:40 +01:00
..
ftrace.c ftrace, trivial: fix typo "resgister" -> "register" 2009-01-14 12:11:49 +01:00
Kconfig tracing: add a new workqueue tracer 2009-01-14 12:11:43 +01:00
kmemtrace.c kmemtrace: add kmemtrace_init() 2009-01-06 10:16:35 +01:00
Makefile tracing: add a new workqueue tracer 2009-01-14 12:11:43 +01:00
ring_buffer.c ring_buffer: reset write when reserve buffer fail 2009-01-15 09:46:40 +01:00
trace_boot.c Merge branches 'tracing/kmemtrace2' and 'tracing/ftrace' into tracing/urgent 2009-01-06 10:18:43 +01:00
trace_branch.c tracing/ftrace: separate events tracing and stats tracing engine 2009-01-14 12:11:37 +01:00
trace_functions_graph.c Merge branches 'tracing/kmemtrace2' and 'tracing/ftrace' into tracing/urgent 2009-01-06 10:18:43 +01:00
trace_functions.c ftrace: introduce tracing_reset_online_cpus() helper 2008-12-19 16:29:34 +01:00
trace_hw_branches.c Merge branches 'tracing/kmemtrace2' and 'tracing/ftrace' into tracing/urgent 2009-01-06 10:18:43 +01:00
trace_irqsoff.c tracing/ftrace: change the type of the init() callback 2008-11-16 07:55:23 +01:00
trace_mmiotrace.c mmiotrace: count events lost due to not recording 2009-01-11 04:01:30 +01:00
trace_nop.c tracing/ftrace: make nop tracer using tracer flags 2008-11-18 11:10:59 +01:00
trace_output.c ftrace: change trace.c to use registered events 2008-12-29 12:46:12 +01:00
trace_output.h ftrace: change trace.c to use registered events 2008-12-29 12:46:12 +01:00
trace_power.c Merge branches 'tracing/kmemtrace2' and 'tracing/ftrace' into tracing/urgent 2009-01-06 10:18:43 +01:00
trace_sched_switch.c sched, trace: update trace_sched_wakeup() 2008-12-25 13:10:21 +01:00
trace_sched_wakeup.c sched, trace: update trace_sched_wakeup() 2008-12-25 13:10:21 +01:00
trace_selftest_dynamic.c ftrace: fix dynamic ftrace selftest 2008-05-23 21:13:23 +02:00
trace_selftest.c tracing/selftest: remove TRACE_CONT reference 2008-12-29 15:07:47 +01:00
trace_stack.c trace: better use of stack_trace_enabled for boot up code 2008-12-18 12:56:56 +01:00
trace_stat.c tracing/ftrace: separate events tracing and stats tracing engine 2009-01-14 12:11:37 +01:00
trace_stat.h tracing/ftrace: separate events tracing and stats tracing engine 2009-01-14 12:11:37 +01:00
trace_sysprof.c cpumask: convert kernel trace functions 2009-01-01 10:12:22 +10:30
trace_workqueue.c tracing: add a new workqueue tracer 2009-01-14 12:11:43 +01:00
trace.c trace: print ftrace_dump at KERN_EMERG log level 2009-01-15 09:45:09 +01:00
trace.h tracing/ftrace: separate events tracing and stats tracing engine 2009-01-14 12:11:37 +01:00