Re: [PATCH v2 1/4] mm: Introduce vm_uffd_ops API
From: Peter Xu
Date: Tue Sep 16 2025 - 16:05:50 EST
On Mon, Sep 08, 2025 at 12:53:37PM -0400, Liam R. Howlett wrote:
> What we don't want is non-mm code specifying values for the function
> pointer and doing what they want, or a function pointer that returns a
> core mm resource (in the old example this was a vma, here it is a
> folio).
>
> From this patch set:
> + * Return: zero if succeeded, negative for errors.
> + */
> + int (*uffd_get_folio)(struct inode *inode, pgoff_t pgoff,
> + struct folio **folio);
>
> This is one of the contention points in the current scenario as the
> folio would be returned.
OK I didn't see this one previously, it partly answers one of my question
in the other reply, in a way I wished not.
Could you elaborate why an API returning an folio pointer would be
dangerous?
OTOH, would you think alloc_pages() or folio_alloc() be dangerous too?
They return a folio from the mm core to drivers, hence it's not the same
direction of folio sharing, however it also means at least the driver can
manipulate the folio / memmap as much as it wants, sabotaging everything is
similarly possible. Why we worry about that?
Are we going to unexport alloc_pages() someday?
Thanks,
--
Peter Xu