mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 15:03:52 +08:00
ring-buffer: Do not record in NMI if the arch does not support cmpxchg in NMI
As the ring buffer recording requires cmpxchg() to work, if the architecture does not support cmpxchg in NMI, then do not do any recording within an NMI. Link: https://lore.kernel.org/linux-trace-kernel/20231213175403.6fc18540@gandalf.local.home Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
This commit is contained in:
@@ -3674,6 +3674,12 @@ rb_reserve_next_event(struct trace_buffer *buffer,
|
||||
int nr_loops = 0;
|
||||
int add_ts_default;
|
||||
|
||||
/* ring buffer does cmpxchg, make sure it is safe in NMI context */
|
||||
if (!IS_ENABLED(CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG) &&
|
||||
(unlikely(in_nmi()))) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
rb_start_commit(cpu_buffer);
|
||||
/* The commit page can not change after this */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user