[PATCH v3 13/15] perf: Use scoped_guard() for mmap_mutex in perf_mmap()
From: Peter Zijlstra
Date: Tue Aug 12 2025 - 06:48:57 EST
Mostly just re-indent noise.
Suggested-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
---
kernel/events/core.c | 32 ++++++++++++++------------------
1 file changed, 14 insertions(+), 18 deletions(-)
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -7143,27 +7143,23 @@ static int perf_mmap(struct file *file,
if (vma_size != PAGE_SIZE * nr_pages)
return -EINVAL;
- mutex_lock(&event->mmap_mutex);
- ret = -EINVAL;
+ scoped_guard (mutex, &event->mmap_mutex) {
+ /*
+ * This relies on __pmu_detach_event() taking mmap_mutex after marking
+ * the event REVOKED. Either we observe the state, or __pmu_detach_event()
+ * will detach the rb created here.
+ */
+ if (event->state <= PERF_EVENT_STATE_REVOKED) {
+ ret = -ENODEV;
+ break;
+ }
- /*
- * This relies on __pmu_detach_event() taking mmap_mutex after marking
- * the event REVOKED. Either we observe the state, or __pmu_detach_event()
- * will detach the rb created here.
- */
- if (event->state <= PERF_EVENT_STATE_REVOKED) {
- ret = -ENODEV;
- goto unlock;
+ if (vma->vm_pgoff == 0)
+ ret = perf_mmap_rb(vma, event, nr_pages);
+ else
+ ret = perf_mmap_aux(vma, event, nr_pages);
}
- if (vma->vm_pgoff == 0)
- ret = perf_mmap_rb(vma, event, nr_pages);
- else
- ret = perf_mmap_aux(vma, event, nr_pages);
-
-unlock:
- mutex_unlock(&event->mmap_mutex);
-
if (ret)
return ret;