On 3/22/19 9:21 AM, Christoph Hellwig wrote:
It then introduces a new define ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
that can be defined by other architectures to benefit from those functions.
Can you make this a Kconfig option defined in arch/Kconfig or mm/Kconfig
and selected by the architectures?
Yes, I will do.
-#ifndef STACK_RND_MASK
-#define STACK_RND_MASK (0x7ff >> (PAGE_SHIFT - 12)) /* 8MB of VA */
-#endif
-
-static unsigned long randomize_stack_top(unsigned long stack_top)
-{
- unsigned long random_variable = 0;
-
- if (current->flags & PF_RANDOMIZE) {
- random_variable = get_random_long();
- random_variable &= STACK_RND_MASK;
- random_variable <<= PAGE_SHIFT;
- }
-#ifdef CONFIG_STACK_GROWSUP
- return PAGE_ALIGN(stack_top) + random_variable;
-#else
- return PAGE_ALIGN(stack_top) - random_variable;
-#endif
-}
-
Maybe the move of this function can be split into another prep patch,
as it is only very lightly related?
Ok, that makes sense.
+#if defined(HAVE_ARCH_PICK_MMAP_LAYOUT) || \
+ defined(ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT)
Not sure if it is wrіtten down somehwere or just convention, but I
general see cpp defined statements aligned with spaces to the
one on the previous line.
Ok, I will fix that.
Except for these nitpicks this looks very nice to me, thanks for doing
this work!
Thanks :)