diff options
author | Jiri Kosina <jkosina@suse.cz> | 2022-12-13 14:28:47 +0100 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.cz> | 2022-12-13 14:28:47 +0100 |
commit | ab970ae1d63822228bdc84b9c1514efbd2f66da7 (patch) | |
tree | fefc08d8dd28e4eb5465ca85de5cce2fb6f1b7ef /kernel/trace/ring_buffer.c | |
parent | cfd1f6c16f7deadfe5269a76c1516405c4466481 (diff) | |
parent | 163a7fbff7a78c7c055e6c0ad26124ae551fe313 (diff) |
Merge branch 'for-6.2/default-remove-cleanup' into for-linus
- removal of superfluous hid_hw_stop() calls for drivers with default
.remove callback (Marcus Folkesson)
Diffstat (limited to 'kernel/trace/ring_buffer.c')
-rw-r--r-- | kernel/trace/ring_buffer.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 199759c73519..9712083832f4 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -937,6 +937,9 @@ void ring_buffer_wake_waiters(struct trace_buffer *buffer, int cpu) struct ring_buffer_per_cpu *cpu_buffer; struct rb_irq_work *rbwork; + if (!buffer) + return; + if (cpu == RING_BUFFER_ALL_CPUS) { /* Wake up individual ones too. One level recursion */ @@ -945,7 +948,15 @@ void ring_buffer_wake_waiters(struct trace_buffer *buffer, int cpu) rbwork = &buffer->irq_work; } else { + if (WARN_ON_ONCE(!buffer->buffers)) + return; + if (WARN_ON_ONCE(cpu >= nr_cpu_ids)) + return; + cpu_buffer = buffer->buffers[cpu]; + /* The CPU buffer may not have been initialized yet */ + if (!cpu_buffer) + return; rbwork = &cpu_buffer->irq_work; } |