]> Git Repo - linux.git/commitdiff
mm: remove duplicated vma->vm_flags check when expanding stack
authorXiu Jianfeng <[email protected]>
Wed, 6 Sep 2023 10:33:12 +0000 (10:33 +0000)
committerAndrew Morton <[email protected]>
Wed, 4 Oct 2023 17:32:21 +0000 (10:32 -0700)
expand_upwards() and expand_downwards() will return -EFAULT if VM_GROWSUP
or VM_GROWSDOWN is not correctly set in vma->vm_flags, however in
!CONFIG_STACK_GROWSUP case, expand_stack_locked() returns -EINVAL first if
!(vma->vm_flags & VM_GROWSDOWN) before calling expand_downwards(), to keep
the consistency with CONFIG_STACK_GROWSUP case, remove this check.

The usages of this function are as below:

A:fs/exec.c
ret = expand_stack_locked(vma, stack_base);
if (ret)
ret = -EFAULT;

or

B:mm/memory.c mm/mmap.c
if (expand_stack_locked(vma, addr))
return NULL;

which means the return value will not propagate to other places, so I
believe there is no user-visible effects of this change, and it's
unnecessary to backport to earlier versions.

Link: https://lkml.kernel.org/r/[email protected]
Fixes: f440fa1ac955 ("mm: make find_extend_vma() fail if write lock not held")
Signed-off-by: Xiu Jianfeng <[email protected]>
Cc: Liam R. Howlett <[email protected]>
Cc: Matthew Wilcox (Oracle) <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
mm/mmap.c

index 1ec6c875a7f95745aa1e94c55d2fa6966ab10a0f..42870c4d87047d46bc635baf3083b088fb500108 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -2159,8 +2159,6 @@ struct vm_area_struct *find_extend_vma_locked(struct mm_struct *mm, unsigned lon
 #else
 int expand_stack_locked(struct vm_area_struct *vma, unsigned long address)
 {
-       if (unlikely(!(vma->vm_flags & VM_GROWSDOWN)))
-               return -EINVAL;
        return expand_downwards(vma, address);
 }
 
This page took 0.075602 seconds and 4 git commands to generate.