]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
perf: Use guard() for aux_mutex in perf_mmap()
authorPeter Zijlstra <peterz@infradead.org>
Tue, 12 Aug 2025 10:39:06 +0000 (12:39 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Fri, 15 Aug 2025 11:13:00 +0000 (13:13 +0200)
After duplicating the common code into the rb/aux branches is it
possible to use a simple guard() for the aux_mutex. Making the aux
branch self-contained.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Link: https://lore.kernel.org/r/20250812104019.246250452@infradead.org
kernel/events/core.c

index 89fb069913d07532610468a513d7c766541529f0..236c60adde88398457a48ceac2704c6c90a957d1 100644 (file)
@@ -6975,7 +6975,6 @@ static int perf_mmap(struct file *file, struct vm_area_struct *vma)
        struct perf_event *event = file->private_data;
        unsigned long vma_size, nr_pages;
        long user_extra = 0, extra = 0;
-       struct mutex *aux_mutex = NULL;
        struct perf_buffer *rb = NULL;
        int ret, flags = 0;
        mapped_f mapped;
@@ -7100,8 +7099,7 @@ static int perf_mmap(struct file *file, struct vm_area_struct *vma)
                if (!rb)
                        goto unlock;
 
-               aux_mutex = &rb->aux_mutex;
-               mutex_lock(aux_mutex);
+               guard(mutex)(&rb->aux_mutex);
 
                aux_offset = READ_ONCE(rb->user_page->aux_offset);
                aux_size = READ_ONCE(rb->user_page->aux_size);
@@ -7161,8 +7159,6 @@ aux_success:
        }
 
 unlock:
-       if (aux_mutex)
-               mutex_unlock(aux_mutex);
        mutex_unlock(&event->mmap_mutex);
 
        if (ret)