diff options
Diffstat (limited to 'kernel/trace/ring_buffer.c')
| -rw-r--r-- | kernel/trace/ring_buffer.c | 12 | 
1 files changed, 6 insertions, 6 deletions
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index 8c1b2d290718..54191d6ed195 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -2232,12 +2232,12 @@ ring_buffer_lock_reserve(struct ring_buffer *buffer, unsigned long length)  	if (ring_buffer_flags != RB_BUFFERS_ON)  		return NULL; -	if (atomic_read(&buffer->record_disabled)) -		return NULL; -  	/* If we are tracing schedule, we don't want to recurse */  	resched = ftrace_preempt_disable(); +	if (atomic_read(&buffer->record_disabled)) +		goto out_nocheck; +  	if (trace_recursive_lock())  		goto out_nocheck; @@ -2469,11 +2469,11 @@ int ring_buffer_write(struct ring_buffer *buffer,  	if (ring_buffer_flags != RB_BUFFERS_ON)  		return -EBUSY; -	if (atomic_read(&buffer->record_disabled)) -		return -EBUSY; -  	resched = ftrace_preempt_disable(); +	if (atomic_read(&buffer->record_disabled)) +		goto out; +  	cpu = raw_smp_processor_id();  	if (!cpumask_test_cpu(cpu, buffer->cpumask))  | 
