[PATCH v2 1/1] mm/rmap: fix potential out-of-bounds page table access during batched unmap

Barry Song 21cnbao at gmail.com
Fri Jun 27 15:42:49 PDT 2025


On Sat, Jun 28, 2025 at 3:29 AM Lance Yang <lance.yang at linux.dev> wrote:

[...]
>
> Based on that, I think we're on the same page now. I'd like to post
> the following commit message for the next version:
>
> ```
> As pointed out by David[1], the batched unmap logic in try_to_unmap_one()
> may read past the end of a PTE table when a large folio's PTE mappings
> are not fully contained within a single page table.
>
> While this scenario might be rare, an issue triggerable from userspace must
> be fixed regardless of its likelihood. This patch fixes the out-of-bounds
> access by refactoring the logic into a new helper, folio_unmap_pte_batch().
>
> The new helper correctly calculates the safe batch size by capping the
> scan at both the VMA and PMD boundaries. To simplify the code, it also
> supports partial batching (i.e., any number of pages from 1 up to the
> calculated safe maximum), as there is no strong reason to special-case
> for fully mapped folios.
> ```
>
> So, wdyt?
>

Acked-by: Barry Song <baohua at kernel.org>

Thanks
Barry



More information about the linux-riscv mailing list