Re: [PATCH v2 1/2] mm: Use a folio in the softleaf_is_device_private path

From: Lorenzo Stoakes (ARM)

Date: Fri Jul 31 2026 - 09:13:50 EST


On Fri, Jul 31, 2026 at 05:40:54PM +0800, Hongfu Li wrote:
> > > mm/memory.c | 11 ++++++-----
> > > 1 file changed, 6 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/mm/memory.c b/mm/memory.c
> > > index d5e87624f692..ae521baa8c84 100644
> > > --- a/mm/memory.c
> > > +++ b/mm/memory.c
> > > @@ -4871,18 +4871,19 @@ vm_fault_t do_swap_page(struct vm_fault *vmf)
> > > goto unlock;
> > >
> >
> > Up here we have:
> >
> > vmf->page = softleaf_to_page(entry);
> > vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd,
> > vmf->address, &vmf->ptl);
> > if (unlikely(!vmf->pte ||
> > !pte_same(ptep_get(vmf->pte),
> > vmf->orig_pte)))
> >
> > Since we're canonicalising to folio why not actually set folio using
> > softleaf_to_folio()?
> >
> > So
> >
> > + folio = softleaf_to_folio(entry);
> > - vmf->page = softleaf_to_page(entry);
> > + vmf->page = &folio->page;
> >
> > This would also make more sense in your 2/2. But more on that in a sec.
>
> Thanks, I've thought through your suggestion carefully.
>
> Could entry reference a tail page of a folio here?
> If so, softleaf_to_folio() retrieves the folio containing this page,
> and vmf->page = &folio->page would point to the folio's head page,
> which may not be correct.

Yeah that's true! My bad, disregard that bit then :)

>
> Best regards,
> Hongfu

--
Cheers, Lorenzo