diff options
| author | Olof Johansson <olof@lixom.net> | 2013-06-08 22:30:28 -0700 |
|---|---|---|
| committer | Olof Johansson <olof@lixom.net> | 2013-06-08 22:30:47 -0700 |
| commit | 4d8f509e7a5d2eb636d57ddb677e504a90a4f99d (patch) | |
| tree | 2f359163b1e8a08bd0d3a478096d80623582bfbf /kernel | |
| parent | b9747b3aafa7687414491e789c1a1b05c8781018 (diff) | |
| parent | 3cc3b617dc39dad1e566ccfc4500154cb7c51aa3 (diff) | |
| download | lwn-4d8f509e7a5d2eb636d57ddb677e504a90a4f99d.tar.gz lwn-4d8f509e7a5d2eb636d57ddb677e504a90a4f99d.zip | |
Merge tag 'sirf-arm-soc-v3.10-fixes' of git://gitorious.org/sirfprima2-kernel/sirfprima2-kernel into next/fixes-non-critical
From Barry Song, SiRF fixes for v3.10 (that we're punting to 3.11):
- Replace include linux/module.h with linux/export.h
- fix a checkpatch issue
- use of_platform_populate instead of of_platform_bus_probe
* tag 'sirf-arm-soc-v3.10-fixes' of git://gitorious.org/sirfprima2-kernel/sirfprima2-kernel:
arm: prima2: use of_platform_populate instead of of_platform_bus_probe
ARM: prima2: fix a checkpatch issue
ARM: prima2: Replace include linux/module.h with linux/export.h
+ Linux 3.10-rc4
Signed-off-by: Olof Johansson <olof@lixom.net>
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, final_start = min(range[i].start, start); final_end = max(range[i].end, end); - range[i].start = final_start; - range[i].end = final_end; - return nr_range; + /* clear it and add it back for further merge */ + range[i].start = 0; + range[i].end = 0; + return add_range_with_merge(range, az, nr_range, + final_start, final_end); } /* 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, if (cpu == RING_BUFFER_ALL_CPUS) work = &buffer->irq_work; else { + if (!cpumask_test_cpu(cpu, buffer->cpumask)) + return -EINVAL; + cpu_buffer = buffer->buffers[cpu]; work = &cpu_buffer->irq_work; } 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) trace_init_cmdlines(); - register_tracer(&nop_trace); - + /* + * register_tracer() might reference current_trace, so it + * needs to be set before we register anything. This is + * just a bootstrap of current_trace anyway. + */ global_trace.current_trace = &nop_trace; + register_tracer(&nop_trace); + /* All seems OK, enable tracing */ tracing_disabled = 0; |
