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

Commit 53ede64d authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf fix from Ingo Molnar:
 "A single fix to not allow nonsensical event groups that result in
  kernel warnings"

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf/core: Fix group {cpu,task} validation
parents b3242dba 64aee2a9
Loading
Loading
Loading
Loading
+19 −20
Original line number Diff line number Diff line
@@ -10032,28 +10032,27 @@ SYSCALL_DEFINE5(perf_event_open,
			goto err_context;

		/*
		 * Do not allow to attach to a group in a different
		 * task or CPU context:
		 * Make sure we're both events for the same CPU;
		 * grouping events for different CPUs is broken; since
		 * you can never concurrently schedule them anyhow.
		 */
		if (move_group) {
		if (group_leader->cpu != event->cpu)
			goto err_context;

		/*
		 * Make sure we're both on the same task, or both
			 * per-cpu events.
		 * per-CPU events.
		 */
		if (group_leader->ctx->task != ctx->task)
			goto err_context;

		/*
			 * Make sure we're both events for the same CPU;
			 * grouping events for different CPUs is broken; since
			 * you can never concurrently schedule them anyhow.
		 * Do not allow to attach to a group in a different task
		 * or CPU context. If we're moving SW events, we'll fix
		 * this up later, so allow that.
		 */
			if (group_leader->cpu != event->cpu)
		if (!move_group && group_leader->ctx != ctx)
			goto err_context;
		} else {
			if (group_leader->ctx != ctx)
				goto err_context;
		}

		/*
		 * Only a group leader can be exclusive or pinned