diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/range.c | 8 | ||||
| -rw-r--r-- | kernel/trace/ring_buffer.c | 3 | ||||
| -rw-r--r-- | kernel/trace/trace.c | 9 |
3 files changed, 15 insertions, 5 deletions
diff --git a/kernel/range.c b/kernel/range.c index 071b0ab455cb..eb911dbce267 100644 --- a/kernel/range.c +++ b/kernel/range.c | |||
| @@ -48,9 +48,11 @@ int add_range_with_merge(struct range *range, int az, int nr_range, | |||
| 48 | final_start = min(range[i].start, start); | 48 | final_start = min(range[i].start, start); |
| 49 | final_end = max(range[i].end, end); | 49 | final_end = max(range[i].end, end); |
| 50 | 50 | ||
| 51 | range[i].start = final_start; | 51 | /* clear it and add it back for further merge */ |
| 52 | range[i].end = final_end; | 52 | range[i].start = 0; |
| 53 | return nr_range; | 53 | range[i].end = 0; |
| 54 | return add_range_with_merge(range, az, nr_range, | ||
| 55 | final_start, final_end); | ||
| 54 | } | 56 | } |
| 55 | 57 | ||
| 56 | /* Need to add it: */ | 58 | /* Need to add it: */ |
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 | ||
