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

Commit d94fc523 authored by Li Zefan's avatar Li Zefan Committed by Ingo Molnar
Browse files

tracing/events: fix concurrent access to ftrace_events list, fix



In filter_add_subsystem_pred() we should release event_mutex before
calling filter_free_subsystem_preds(), since both functions hold
event_mutex.

[ Impact: fix deadlock when writing invalid pred into subsystem filter ]

Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
Cc: tzanussi@gmail.com
Cc: a.p.zijlstra@chello.nl
Cc: fweisbec@gmail.com
Cc: rostedt@goodmis.org
LKML-Reference: <4A028993.7020509@cn.fujitsu.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 5928c3cc
Loading
Loading
Loading
Loading
+3 −2
Original line number Original line Diff line number Diff line
@@ -636,14 +636,15 @@ static int filter_add_subsystem_pred(struct filter_parse_state *ps,


		err = filter_add_pred(ps, call, pred);
		err = filter_add_pred(ps, call, pred);
		if (err) {
		if (err) {
			mutex_unlock(&event_mutex);
			filter_free_subsystem_preds(system);
			filter_free_subsystem_preds(system);
			parse_error(ps, FILT_ERR_BAD_SUBSYS_FILTER, 0);
			parse_error(ps, FILT_ERR_BAD_SUBSYS_FILTER, 0);
			break;
			goto out;
		}
		}
		replace_filter_string(call->filter, filter_string);
		replace_filter_string(call->filter, filter_string);
	}
	}
	mutex_unlock(&event_mutex);
	mutex_unlock(&event_mutex);

out:
	return err;
	return err;
}
}