[PATCH 09/13] perf: Simplify perf_event_modify_attr()

Peter Zijlstra
2023-11-02T15:33:33Z

kernel/events/core.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -3172,7 +3172,7 @@ static int perf_event_modify_attr(struct

WARN_ON_ONCE(event->ctx->parent_ctx);

- mutex_lock(&event->child_mutex);
+ guard(mutex)(&event->child_mutex);
/*
* Event-type-independent attributes must be copied before event-type
* modification, which will validate that final attributes match the
@@ -3181,16 +3181,16 @@ static int perf_event_modify_attr(struct
perf_event_modify_copy_attr(&event->attr, attr);
err = func(event, attr);
if (err)
- goto out;
+ return err;
+
list_for_each_entry(child, &event->child_list, child_list) {
perf_event_modify_copy_attr(&child->attr, attr);
err = func(child, attr);
if (err)
- goto out;
+ return err;
}
-out:
- mutex_unlock(&event->child_mutex);
- return err;
+
+ return 0;
}

static void __pmu_ctx_sched_out(struct perf_event_pmu_context *pmu_ctx,