On Tue, Aug 12, 2025 at 12:39:02PM +0200, Peter Zijlstra wrote:
> if (cond) {
> A;
> } else {
> B;
> }
> C;
>
> into
>
> if (cond) {
> A;
> C;
> } else {
> B;
> C;
> }
>
> Suggested-by: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Seems sensible enough, guessing trade off on duplication vs. complexity of
having to keep track of 'C' being in place for both and I assume makes
later refactorings easier :)
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
> ---
> kernel/events/core.c | 26 ++++++++++++++++++--------
> 1 file changed, 18 insertions(+), 8 deletions(-)
>
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -7054,6 +7054,16 @@ static int perf_mmap(struct file *file,
> ring_buffer_attach(event, NULL);
> }
>
> + if (!perf_mmap_calc_limits(vma, &user_extra, &extra)) {
> + ret = -EPERM;
> + goto unlock;
> + }
> +
> + WARN_ON(!rb && event->rb);
> +
> + if (vma->vm_flags & VM_WRITE)
> + flags |= RING_BUFFER_WRITABLE;
> +
> } else {
> /*
> * AUX area mapping: if rb->aux_nr_pages != 0, it's already
> @@ -7100,17 +7110,17 @@ static int perf_mmap(struct file *file,
> ret = 0;
> goto unlock;
> }
> - }
>
> - if (!perf_mmap_calc_limits(vma, &user_extra, &extra)) {
> - ret = -EPERM;
> - goto unlock;
> - }
> + if (!perf_mmap_calc_limits(vma, &user_extra, &extra)) {
> + ret = -EPERM;
> + goto unlock;
> + }
>
> - WARN_ON(!rb && event->rb);
> + WARN_ON(!rb && event->rb);
>
> - if (vma->vm_flags & VM_WRITE)
> - flags |= RING_BUFFER_WRITABLE;
> + if (vma->vm_flags & VM_WRITE)
> + flags |= RING_BUFFER_WRITABLE;
> + }
>
> if (!rb) {
> rb = rb_alloc(nr_pages,
>
>