]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
mm: simplify min_brk handling in brk()
authorXuanye Liu <liuqiye2025@163.com>
Thu, 10 Jul 2025 02:58:58 +0000 (10:58 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Sun, 20 Jul 2025 01:59:53 +0000 (18:59 -0700)
Set min_brk to mm->start_brk by default, and override it with mm->end_data
only when CONFIG_COMPAT_BRK is enabled and brk_randomized is false.

This makes the logic clearer with no functional change.

Link: https://lkml.kernel.org/r/20250710025859.926355-1-liuqiye2025@163.com
Signed-off-by: Xuanye Liu <liuqiye2025@163.com>
Reviewed-by: Pedro Falcato <pfalcato@suse.de>
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Cc: Jann Horn <jannh@google.com>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/mmap.c

index 74072369e8fde3f4094427b89ddc81fa9e3f2a9f..1287e92ccdda6b6be41f0c7c259b8cf56d45b0e9 100644 (file)
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -127,18 +127,15 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
 
        origbrk = mm->brk;
 
+       min_brk = mm->start_brk;
 #ifdef CONFIG_COMPAT_BRK
        /*
         * CONFIG_COMPAT_BRK can still be overridden by setting
         * randomize_va_space to 2, which will still cause mm->start_brk
         * to be arbitrarily shifted
         */
-       if (current->brk_randomized)
-               min_brk = mm->start_brk;
-       else
+       if (!current->brk_randomized)
                min_brk = mm->end_data;
-#else
-       min_brk = mm->start_brk;
 #endif
        if (brk < min_brk)
                goto out;