Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 71840f23 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Revert "tracing: Move pipe reference to trace array instead of current_tracer"



This reverts commit 43e172e3 which is
commit 7ef282e05132d56b6f6b71e3873f317664bea78b upstream.

This is being reverted as is can cause some crc changes in modversions
due to the changes in trace.h.

From the description of the patch itself:
	This is marked as "Fixes" but is more of a clean up than a true fix.
	Backport if you want, but its not critical.

Bug: 161946584
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
Change-Id: I781e50e6ebe6a2d09c3a4ec2703e7bdbffe8e632
parent 2669cd8a
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -5686,7 +5686,7 @@ static int tracing_set_tracer(struct trace_array *tr, const char *buf)
	}

	/* If trace pipe files are being read, we can't change the tracer */
	if (tr->trace_ref) {
	if (tr->current_trace->ref) {
		ret = -EBUSY;
		goto out;
	}
@@ -5902,7 +5902,7 @@ static int tracing_open_pipe(struct inode *inode, struct file *filp)

	nonseekable_open(inode, filp);

	tr->trace_ref++;
	tr->current_trace->ref++;
out:
	mutex_unlock(&trace_types_lock);
	return ret;
@@ -5921,7 +5921,7 @@ static int tracing_release_pipe(struct inode *inode, struct file *file)

	mutex_lock(&trace_types_lock);

	tr->trace_ref--;
	tr->current_trace->ref--;

	if (iter->trace->pipe_close)
		iter->trace->pipe_close(iter);
@@ -7230,7 +7230,7 @@ static int tracing_buffers_open(struct inode *inode, struct file *filp)

	filp->private_data = info;

	tr->trace_ref++;
	tr->current_trace->ref++;

	mutex_unlock(&trace_types_lock);

@@ -7331,7 +7331,7 @@ static int tracing_buffers_release(struct inode *inode, struct file *file)

	mutex_lock(&trace_types_lock);

	iter->tr->trace_ref--;
	iter->tr->current_trace->ref--;

	__trace_array_put(iter->tr);

@@ -8470,7 +8470,7 @@ static int __remove_instance(struct trace_array *tr)
{
	int i;

	if (tr->ref || (tr->current_trace && tr->trace_ref))
	if (tr->ref || (tr->current_trace && tr->current_trace->ref))
		return -EBUSY;

	list_del(&tr->list);
+1 −1
Original line number Diff line number Diff line
@@ -309,7 +309,6 @@ struct trace_array {
	struct trace_event_file *trace_marker_file;
	cpumask_var_t		tracing_cpumask; /* only trace on set CPUs */
	int			ref;
	int			trace_ref;
#ifdef CONFIG_FUNCTION_TRACER
	struct ftrace_ops	*ops;
	struct trace_pid_list	__rcu *function_pids;
@@ -499,6 +498,7 @@ struct tracer {
	struct tracer		*next;
	struct tracer_flags	*flags;
	int			enabled;
	int			ref;
	bool			print_max;
	bool			allow_instances;
#ifdef CONFIG_TRACER_MAX_TRACE