diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-19 13:47:57 +0100 | 
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-09-19 13:47:57 +0100 | 
| commit | 40d743b8c16a8cf6e30c1d941aa6147f9550ea75 (patch) | |
| tree | 9fcdf9a06b18a275253048d1ea7c9803cec38845 /kernel/trace/ring_buffer.c | |
| parent | 7da18afa423f167e7ef3c9728e584d8bf05bd55a (diff) | |
| parent | 83e686ea0291ee93b87dcdc00b96443b80de56c9 (diff) | |
Merge branch 'for-rmk' of git://linux-arm.org/linux-2.6
Diffstat (limited to 'kernel/trace/ring_buffer.c')
| -rw-r--r-- | kernel/trace/ring_buffer.c | 17 | 
1 files changed, 7 insertions, 10 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 454e74e718c..6eef38923b0 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -701,8 +701,8 @@ static int rb_head_page_set(struct ring_buffer_per_cpu *cpu_buffer,  	val &= ~RB_FLAG_MASK; -	ret = (unsigned long)cmpxchg(&list->next, -				     val | old_flag, val | new_flag); +	ret = cmpxchg((unsigned long *)&list->next, +		      val | old_flag, val | new_flag);  	/* check if the reader took the page */  	if ((ret & ~RB_FLAG_MASK) != val) @@ -794,7 +794,7 @@ static int rb_head_page_replace(struct buffer_page *old,  	val = *ptr & ~RB_FLAG_MASK;  	val |= RB_PAGE_HEAD; -	ret = cmpxchg(ptr, val, &new->list); +	ret = cmpxchg(ptr, val, (unsigned long)&new->list);  	return ret == val;  } @@ -2997,15 +2997,12 @@ static void rb_advance_iter(struct ring_buffer_iter *iter)  }  static struct ring_buffer_event * -rb_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts) +rb_buffer_peek(struct ring_buffer_per_cpu *cpu_buffer, u64 *ts)  { -	struct ring_buffer_per_cpu *cpu_buffer;  	struct ring_buffer_event *event;  	struct buffer_page *reader;  	int nr_loops = 0; -	cpu_buffer = buffer->buffers[cpu]; -   again:  	/*  	 * We repeat when a timestamp is encountered. It is possible @@ -3049,7 +3046,7 @@ rb_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts)  	case RINGBUF_TYPE_DATA:  		if (ts) {  			*ts = cpu_buffer->read_stamp + event->time_delta; -			ring_buffer_normalize_time_stamp(buffer, +			ring_buffer_normalize_time_stamp(cpu_buffer->buffer,  							 cpu_buffer->cpu, ts);  		}  		return event; @@ -3168,7 +3165,7 @@ ring_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts)  	local_irq_save(flags);  	if (dolock)  		spin_lock(&cpu_buffer->reader_lock); -	event = rb_buffer_peek(buffer, cpu, ts); +	event = rb_buffer_peek(cpu_buffer, ts);  	if (event && event->type_len == RINGBUF_TYPE_PADDING)  		rb_advance_reader(cpu_buffer);  	if (dolock) @@ -3237,7 +3234,7 @@ ring_buffer_consume(struct ring_buffer *buffer, int cpu, u64 *ts)  	if (dolock)  		spin_lock(&cpu_buffer->reader_lock); -	event = rb_buffer_peek(buffer, cpu, ts); +	event = rb_buffer_peek(cpu_buffer, ts);  	if (event)  		rb_advance_reader(cpu_buffer);  | 
