Re: [PATCH v3 5/7] mm/memfd_luo: fix physical address conversion in put_folios cleanup

From: Pratyush Yadav

Date: Thu Apr 02 2026 - 07:10:13 EST


On Thu, Mar 26 2026, Chenghao Duan wrote:

> In memfd_luo_retrieve_folios()'s put_folios cleanup path:
>
> 1. kho_restore_folio() expects a phys_addr_t (physical address) but
> receives a raw PFN (pfolio->pfn). This causes kho_restore_page() to
> check the wrong physical address (pfn << PAGE_SHIFT instead of the
> actual physical address).
>
> 2. This loop lacks the !pfolio->pfn check that exists in the main
> retrieval loop and memfd_luo_discard_folios(), which could
> incorrectly process sparse file holes where pfn=0.
>
> Fix by converting PFN to physical address with PFN_PHYS() and adding
> the !pfolio->pfn check, matching the pattern used elsewhere in this file.
>
> This issue was identified by the AI review.
> https://sashiko.dev/#/patchset/20260323110747.193569-1-duanchenghao@xxxxxxxxxx
>
> Signed-off-by: Chenghao Duan <duanchenghao@xxxxxxxxxx>

Reviewed-by: Pratyush Yadav <pratyush@xxxxxxxxxx>

Andrew, can you please add:

Fixes: b3749f174d68 ("mm: memfd_luo: allow preserving memfd")
Cc: stable@xxxxxxxxxxxxxxx

[...]

--
Regards,
Pratyush Yadav