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 | ||
