diff options
author | Shan Wei <davidshan@tencent.com> | 2012-11-12 20:53:04 -0500 |
---|---|---|
committer | Steven Rostedt <rostedt@goodmis.org> | 2013-01-21 13:22:30 -0500 |
commit | d8a0349c0cea477322c66ea9362f10c62fad5f62 (patch) | |
tree | ca9bd84c3629bc166f407c34055eb809e416d430 /kernel | |
parent | 771e03842a9e98a1c2013ca1ed8bb2793488f3e5 (diff) |
tracing: Use this_cpu_ptr per-cpu helper
typeof(&buffer) is a pointer to array of 1024 char, or char (*)[1024].
But, typeof(&buffer[0]) is a pointer to char which match the return type of get_trace_buf().
As well-known, the value of &buffer is equal to &buffer[0].
so return this_cpu_ptr(&percpu_buffer->buffer[0]) can avoid type cast.
Link: http://lkml.kernel.org/r/50A1A800.3020102@gmail.com
Reviewed-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Shan Wei <davidshan@tencent.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/trace/blktrace.c | 2 | ||||
-rw-r--r-- | kernel/trace/trace.c | 5 |
2 files changed, 2 insertions, 5 deletions
diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c index c0bd0308741c..71259e2b6b61 100644 --- a/kernel/trace/blktrace.c +++ b/kernel/trace/blktrace.c | |||
@@ -147,7 +147,7 @@ void __trace_note_message(struct blk_trace *bt, const char *fmt, ...) | |||
147 | return; | 147 | return; |
148 | 148 | ||
149 | local_irq_save(flags); | 149 | local_irq_save(flags); |
150 | buf = per_cpu_ptr(bt->msg_data, smp_processor_id()); | 150 | buf = this_cpu_ptr(bt->msg_data); |
151 | va_start(args, fmt); | 151 | va_start(args, fmt); |
152 | n = vscnprintf(buf, BLK_TN_MAX_MSG, fmt, args); | 152 | n = vscnprintf(buf, BLK_TN_MAX_MSG, fmt, args); |
153 | va_end(args); | 153 | va_end(args); |
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 3c13e46d7d24..f8b7c626f3fd 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -1517,7 +1517,6 @@ static struct trace_buffer_struct *trace_percpu_nmi_buffer; | |||
1517 | static char *get_trace_buf(void) | 1517 | static char *get_trace_buf(void) |
1518 | { | 1518 | { |
1519 | struct trace_buffer_struct *percpu_buffer; | 1519 | struct trace_buffer_struct *percpu_buffer; |
1520 | struct trace_buffer_struct *buffer; | ||
1521 | 1520 | ||
1522 | /* | 1521 | /* |
1523 | * If we have allocated per cpu buffers, then we do not | 1522 | * If we have allocated per cpu buffers, then we do not |
@@ -1535,9 +1534,7 @@ static char *get_trace_buf(void) | |||
1535 | if (!percpu_buffer) | 1534 | if (!percpu_buffer) |
1536 | return NULL; | 1535 | return NULL; |
1537 | 1536 | ||
1538 | buffer = per_cpu_ptr(percpu_buffer, smp_processor_id()); | 1537 | return this_cpu_ptr(&percpu_buffer->buffer[0]); |
1539 | |||
1540 | return buffer->buffer; | ||
1541 | } | 1538 | } |
1542 | 1539 | ||
1543 | static int alloc_percpu_trace_buffer(void) | 1540 | static int alloc_percpu_trace_buffer(void) |