Re: [PATCH] mm: assert mmap write lock held on do_mmap(), mmap_region()

From: Vlastimil Babka
Date: Fri Dec 13 2024 - 09:06:48 EST


On 12/12/24 12:48, Lorenzo Stoakes wrote:
> Both of these functions can be invoked outside of mm, so it is probably a
> good idea to assert that the required lock is held.
>
> Will only have an impact if CONFIG_DEBUG_VM is set, otherwise this amounts
> to no change at all.
>
> Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx>

Acked-by: Vlastimil Babka <vbabka@xxxxxxx>

> ---
> mm/mmap.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/mm/mmap.c b/mm/mmap.c
> index df9154b15ef9..43ef85028921 100644
> --- a/mm/mmap.c
> +++ b/mm/mmap.c
> @@ -291,6 +291,8 @@ unsigned long do_mmap(struct file *file, unsigned long addr,
>
> *populate = 0;
>
> + mmap_assert_write_locked(mm);
> +
> if (!len)
> return -EINVAL;
>
> @@ -1023,6 +1025,8 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
> unsigned long ret;
> bool writable_file_mapping = false;
>
> + mmap_assert_write_locked(current->mm);
> +
> /* Check to see if MDWE is applicable. */
> if (map_deny_write_exec(vm_flags, vm_flags))
> return -EACCES;
> --
> 2.47.1