Re: [PATCH v4 17/21] mm/mmap: Drop arch_unmap() call from all archs

From: LEROY Christophe
Date: Wed Jul 10 2024 - 17:02:32 EST




Le 10/07/2024 à 21:22, Liam R. Howlett a écrit :
> From: "Liam R. Howlett" <Liam.Howlett@xxxxxxxxxx>
>
> The arch_unmap call was previously moved above the rbtree modifications
> in commit 5a28fc94c914 ("x86/mpx, mm/core: Fix recursive munmap()
> corruption"). The move was motivated by an issue with calling
> arch_unmap() after the rbtree was modified.
>
> Since the above commit, mpx was dropped from the kernel in 45fc24e89b7c
> ("x86/mpx: remove MPX from arch/x86"), so the motivation for calling
> arch_unmap() prior to modifying the vma tree no longer exists
> (regardless of rbtree or maple tree implementations).
>
> Furthermore, the powerpc implementation is also no longer needed as per
> [1] and [2]. So the arch_unmap() function can be completely removed.

I'm not sure to understand. Is it replaced by something else ?
We wanted to get rid of arch_unmap() but it was supposed to be replaced
by some core function because the functionnality itself is still
required and indeed all the discussion around [2] demonstrated that not
only powerpc but at least arm and probably others needed to properly
clean-up reference to VDSO mappings on unmapping.

So as mentioned by Michael you can't just drop that without replacing it
by something else. We need the VDSO signal handling to properly fallback
on stack-based trampoline when the VDSO trampoline gets mapped out.

Or did I miss something ?

Christophe

>
> Link: https://lore.kernel.org/lkml/20210611180242.711399-1-dima@xxxxxxxxxx/
> Link: https://github.com/linuxppc/issues/issues/241