diff options
Diffstat (limited to 'kernel/trace/ring_buffer.c')
-rw-r--r-- | kernel/trace/ring_buffer.c | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 454e74e718cf..d4ff01970547 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
@@ -201,8 +201,6 @@ int tracing_is_on(void) | |||
201 | } | 201 | } |
202 | EXPORT_SYMBOL_GPL(tracing_is_on); | 202 | EXPORT_SYMBOL_GPL(tracing_is_on); |
203 | 203 | ||
204 | #include "trace.h" | ||
205 | |||
206 | #define RB_EVNT_HDR_SIZE (offsetof(struct ring_buffer_event, array)) | 204 | #define RB_EVNT_HDR_SIZE (offsetof(struct ring_buffer_event, array)) |
207 | #define RB_ALIGNMENT 4U | 205 | #define RB_ALIGNMENT 4U |
208 | #define RB_MAX_SMALL_DATA (RB_ALIGNMENT * RINGBUF_TYPE_DATA_TYPE_LEN_MAX) | 206 | #define RB_MAX_SMALL_DATA (RB_ALIGNMENT * RINGBUF_TYPE_DATA_TYPE_LEN_MAX) |
@@ -701,8 +699,8 @@ static int rb_head_page_set(struct ring_buffer_per_cpu *cpu_buffer, | |||
701 | 699 | ||
702 | val &= ~RB_FLAG_MASK; | 700 | val &= ~RB_FLAG_MASK; |
703 | 701 | ||
704 | ret = (unsigned long)cmpxchg(&list->next, | 702 | ret = cmpxchg((unsigned long *)&list->next, |
705 | val | old_flag, val | new_flag); | 703 | val | old_flag, val | new_flag); |
706 | 704 | ||
707 | /* check if the reader took the page */ | 705 | /* check if the reader took the page */ |
708 | if ((ret & ~RB_FLAG_MASK) != val) | 706 | if ((ret & ~RB_FLAG_MASK) != val) |
@@ -794,7 +792,7 @@ static int rb_head_page_replace(struct buffer_page *old, | |||
794 | val = *ptr & ~RB_FLAG_MASK; | 792 | val = *ptr & ~RB_FLAG_MASK; |
795 | val |= RB_PAGE_HEAD; | 793 | val |= RB_PAGE_HEAD; |
796 | 794 | ||
797 | ret = cmpxchg(ptr, val, &new->list); | 795 | ret = cmpxchg(ptr, val, (unsigned long)&new->list); |
798 | 796 | ||
799 | return ret == val; | 797 | return ret == val; |
800 | } | 798 | } |
@@ -2997,15 +2995,12 @@ static void rb_advance_iter(struct ring_buffer_iter *iter) | |||
2997 | } | 2995 | } |
2998 | 2996 | ||
2999 | static struct ring_buffer_event * | 2997 | static struct ring_buffer_event * |
3000 | rb_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts) | 2998 | rb_buffer_peek(struct ring_buffer_per_cpu *cpu_buffer, u64 *ts) |
3001 | { | 2999 | { |
3002 | struct ring_buffer_per_cpu *cpu_buffer; | ||
3003 | struct ring_buffer_event *event; | 3000 | struct ring_buffer_event *event; |
3004 | struct buffer_page *reader; | 3001 | struct buffer_page *reader; |
3005 | int nr_loops = 0; | 3002 | int nr_loops = 0; |
3006 | 3003 | ||
3007 | cpu_buffer = buffer->buffers[cpu]; | ||
3008 | |||
3009 | again: | 3004 | again: |
3010 | /* | 3005 | /* |
3011 | * We repeat when a timestamp is encountered. It is possible | 3006 | * We repeat when a timestamp is encountered. It is possible |
@@ -3049,7 +3044,7 @@ rb_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts) | |||
3049 | case RINGBUF_TYPE_DATA: | 3044 | case RINGBUF_TYPE_DATA: |
3050 | if (ts) { | 3045 | if (ts) { |
3051 | *ts = cpu_buffer->read_stamp + event->time_delta; | 3046 | *ts = cpu_buffer->read_stamp + event->time_delta; |
3052 | ring_buffer_normalize_time_stamp(buffer, | 3047 | ring_buffer_normalize_time_stamp(cpu_buffer->buffer, |
3053 | cpu_buffer->cpu, ts); | 3048 | cpu_buffer->cpu, ts); |
3054 | } | 3049 | } |
3055 | return event; | 3050 | return event; |
@@ -3168,7 +3163,7 @@ ring_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts) | |||
3168 | local_irq_save(flags); | 3163 | local_irq_save(flags); |
3169 | if (dolock) | 3164 | if (dolock) |
3170 | spin_lock(&cpu_buffer->reader_lock); | 3165 | spin_lock(&cpu_buffer->reader_lock); |
3171 | event = rb_buffer_peek(buffer, cpu, ts); | 3166 | event = rb_buffer_peek(cpu_buffer, ts); |
3172 | if (event && event->type_len == RINGBUF_TYPE_PADDING) | 3167 | if (event && event->type_len == RINGBUF_TYPE_PADDING) |
3173 | rb_advance_reader(cpu_buffer); | 3168 | rb_advance_reader(cpu_buffer); |
3174 | if (dolock) | 3169 | if (dolock) |
@@ -3237,7 +3232,7 @@ ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts) | |||
3237 | if (dolock) | 3232 | if (dolock) |
3238 | spin_lock(&cpu_buffer->reader_lock); | 3233 | spin_lock(&cpu_buffer->reader_lock); |
3239 | 3234 | ||
3240 | event = rb_buffer_peek(buffer, cpu, ts); | 3235 | event = rb_buffer_peek(cpu_buffer, ts); |
3241 | if (event) | 3236 | if (event) |
3242 | rb_advance_reader(cpu_buffer); | 3237 | rb_advance_reader(cpu_buffer); |
3243 | 3238 | ||