Re: [PATCH 15/19] perf: Fix perf_mmap() failure path

From: Lorenzo Stoakes
Date: Mon Mar 03 2025 - 07:39:02 EST


On Sat, Mar 01, 2025 at 08:17:02PM +0100, Ingo Molnar wrote:
>
> * Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
>
> > When f_ops->mmap() returns failure, m_ops->close() is *not* called.
> >
> > Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> > ---
> > kernel/events/core.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > --- a/kernel/events/core.c
> > +++ b/kernel/events/core.c
> > @@ -6830,7 +6830,7 @@ static int perf_mmap(struct file *file,
> > vm_flags_set(vma, VM_DONTCOPY | VM_DONTEXPAND | VM_DONTDUMP);
> > vma->vm_ops = &perf_mmap_vmops;
> >
> > - if (event->pmu->event_mapped)
> > + if (!ret && event->pmu->event_mapped)
> > event->pmu->event_mapped(event, vma->vm_mm);
> >
> > return ret;
>
> I'm wondering whether this fix is still relevant in context of this
> recent commit:
>
> b709eb872e19 perf: map pages in advance

Yeah this is, as perf_mmap() will still be triggered by the mmap code when
this is mmap'd, all we do is essentially prefault the pages at this point
also.

>
> Thanks,
>
> Ingo