mirror of
https://github.com/torvalds/linux.git
synced 2024-11-28 07:01:32 +00:00
perf: Fix enable_on_exec for sibling events
Deng-Cheng Zhu reported that sibling events that were created disabled with enable_on_exec would never get enabled. Iterate all events instead of the group lists. Reported-by: Deng-Cheng Zhu <dczhu@mips.com> Tested-by: Deng-Cheng Zhu <dczhu@mips.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1322048382.14799.41.camel@twins Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
1d9b482e78
commit
b79387ef18
@ -2497,13 +2497,7 @@ static void perf_event_enable_on_exec(struct perf_event_context *ctx)
|
|||||||
raw_spin_lock(&ctx->lock);
|
raw_spin_lock(&ctx->lock);
|
||||||
task_ctx_sched_out(ctx);
|
task_ctx_sched_out(ctx);
|
||||||
|
|
||||||
list_for_each_entry(event, &ctx->pinned_groups, group_entry) {
|
list_for_each_entry(event, &ctx->event_list, event_entry) {
|
||||||
ret = event_enable_on_exec(event, ctx);
|
|
||||||
if (ret)
|
|
||||||
enabled = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
list_for_each_entry(event, &ctx->flexible_groups, group_entry) {
|
|
||||||
ret = event_enable_on_exec(event, ctx);
|
ret = event_enable_on_exec(event, ctx);
|
||||||
if (ret)
|
if (ret)
|
||||||
enabled = 1;
|
enabled = 1;
|
||||||
|
Loading…
Reference in New Issue
Block a user