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