Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mips: adjust brk randomization offset to fit generic version

This commit simply bumps up to 32MB and 1GB the random offset of brk,
compared to 8MB and 256MB, for 32bit and 64bit respectively.

Link: http://lkml.kernel.org/r/20190730055113.23635-12-alex@ghiti.fr
Suggested-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Alexandre Ghiti <alex@ghiti.fr>
Acked-by: Paul Burton <paul.burton@mips.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: James Hogan <jhogan@kernel.org>
Cc: Palmer Dabbelt <palmer@sifive.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Alexandre Ghiti and committed by
Linus Torvalds
e548599f b5fb8617

+4 -3
+4 -3
arch/mips/mm/mmap.c
··· 16 16 #include <linux/random.h> 17 17 #include <linux/sched/signal.h> 18 18 #include <linux/sched/mm.h> 19 + #include <linux/sizes.h> 19 20 20 21 unsigned long shm_align_mask = PAGE_SIZE - 1; /* Sane caches */ 21 22 EXPORT_SYMBOL(shm_align_mask); ··· 190 189 unsigned long rnd = get_random_long(); 191 190 192 191 rnd = rnd << PAGE_SHIFT; 193 - /* 8MB for 32bit, 256MB for 64bit */ 192 + /* 32MB for 32bit, 1GB for 64bit */ 194 193 if (TASK_IS_32BIT_ADDR) 195 - rnd = rnd & 0x7ffffful; 194 + rnd = rnd & (SZ_32M - 1); 196 195 else 197 - rnd = rnd & 0xffffffful; 196 + rnd = rnd & (SZ_1G - 1); 198 197 199 198 return rnd; 200 199 }