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

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
...@@ -10032,28 +10032,27 @@ SYSCALL_DEFINE5(perf_event_open, ...@@ -10032,28 +10032,27 @@ SYSCALL_DEFINE5(perf_event_open,
goto err_context; goto err_context;
/* /*
* Do not allow to attach to a group in a different * Make sure we're both events for the same CPU;
* task or CPU context: * 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 * Make sure we're both on the same task, or both
* per-cpu events. * per-CPU events.
*/ */
if (group_leader->ctx->task != ctx->task) if (group_leader->ctx->task != ctx->task)
goto err_context; goto err_context;
/* /*
* Make sure we're both events for the same CPU; * Do not allow to attach to a group in a different task
* grouping events for different CPUs is broken; since * or CPU context. If we're moving SW events, we'll fix
* you can never concurrently schedule them anyhow. * this up later, so allow that.
*/ */
if (group_leader->cpu != event->cpu) if (!move_group && group_leader->ctx != ctx)
goto err_context; goto err_context;
} else {
if (group_leader->ctx != ctx)
goto err_context;
}
/* /*
* Only a group leader can be exclusive or pinned * Only a group leader can be exclusive or pinned
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment