mm/mmap.c | 4 ++++ 1 file changed, 4 insertions(+)
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@oracle.com>
---
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
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@oracle.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> > --- > 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
© 2016 - 2025 Red Hat, Inc.