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
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.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
trace_boot.c
trace_branch.c tracing/ftrace: separate events tracing and stats tracing engine 2009-01-14 12:11:37 +01:00
trace_functions.c
trace_functions_graph.c
trace_hw_branches.c
trace_irqsoff.c
trace_mmiotrace.c mmiotrace: count events lost due to not recording 2009-01-11 04:01:30 +01:00
trace_nop.c
trace_output.c
trace_output.h
trace_power.c
trace_sched_switch.c
trace_sched_wakeup.c
trace_selftest.c
trace_selftest_dynamic.c
trace_stack.c
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
trace_workqueue.c tracing: add a new workqueue tracer 2009-01-14 12:11:43 +01:00