diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/trace/ring_buffer.c | 3 | ||||
| -rw-r--r-- | kernel/trace/trace.c | 9 |
2 files changed, 10 insertions, 2 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index b59aea2c48c2..e444ff88f0a4 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
| @@ -620,6 +620,9 @@ int ring_buffer_poll_wait(struct ring_buffer *buffer, int cpu, | |||
| 620 | if (cpu == RING_BUFFER_ALL_CPUS) | 620 | if (cpu == RING_BUFFER_ALL_CPUS) |
| 621 | work = &buffer->irq_work; | 621 | work = &buffer->irq_work; |
| 622 | else { | 622 | else { |
| 623 | if (!cpumask_test_cpu(cpu, buffer->cpumask)) | ||
| 624 | return -EINVAL; | ||
| 625 | |||
| 623 | cpu_buffer = buffer->buffers[cpu]; | 626 | cpu_buffer = buffer->buffers[cpu]; |
| 624 | work = &cpu_buffer->irq_work; | 627 | work = &cpu_buffer->irq_work; |
| 625 | } | 628 | } |
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index ae6fa2d1cdf7..4d79485b3237 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
| @@ -6216,10 +6216,15 @@ __init static int tracer_alloc_buffers(void) | |||
| 6216 | 6216 | ||
| 6217 | trace_init_cmdlines(); | 6217 | trace_init_cmdlines(); |
| 6218 | 6218 | ||
| 6219 | register_tracer(&nop_trace); | 6219 | /* |
| 6220 | 6220 | * register_tracer() might reference current_trace, so it | |
| 6221 | * needs to be set before we register anything. This is | ||
| 6222 | * just a bootstrap of current_trace anyway. | ||
| 6223 | */ | ||
| 6221 | global_trace.current_trace = &nop_trace; | 6224 | global_trace.current_trace = &nop_trace; |
| 6222 | 6225 | ||
| 6226 | register_tracer(&nop_trace); | ||
| 6227 | |||
| 6223 | /* All seems OK, enable tracing */ | 6228 | /* All seems OK, enable tracing */ |
| 6224 | tracing_disabled = 0; | 6229 | tracing_disabled = 0; |
| 6225 | 6230 | ||
