diff options
| author | Bartosz Golaszewski <[email protected]> | 2023-12-18 12:31:29 +0000 |
|---|---|---|
| committer | Bartosz Golaszewski <[email protected]> | 2023-12-18 12:31:29 +0000 |
| commit | 12b7f4ddfcb66dafed432cf4a987f5b40179c0f1 (patch) | |
| tree | 1e57a7d047e575d891302fb68fdfcd682fe84a5f /mm/util.c | |
| parent | dt-bindings: gpio: dwapb: allow gpio-ranges (diff) | |
| parent | device property: Implement device_is_big_endian() (diff) | |
| download | kernel-12b7f4ddfcb66dafed432cf4a987f5b40179c0f1.tar.gz kernel-12b7f4ddfcb66dafed432cf4a987f5b40179c0f1.zip | |
Merge tag 'device_is_big_endian-6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core into gpio/for-next
Tag for the device_is_big_endian() addition to property.h
For others to be able to pull from in a stable way.
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Diffstat (limited to 'mm/util.c')
| -rw-r--r-- | mm/util.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/mm/util.c b/mm/util.c index aa01f6ea5a75..744b4d7e3fae 100644 --- a/mm/util.c +++ b/mm/util.c @@ -414,6 +414,15 @@ static int mmap_is_legacy(struct rlimit *rlim_stack) static unsigned long mmap_base(unsigned long rnd, struct rlimit *rlim_stack) { +#ifdef CONFIG_STACK_GROWSUP + /* + * For an upwards growing stack the calculation is much simpler. + * Memory for the maximum stack size is reserved at the top of the + * task. mmap_base starts directly below the stack and grows + * downwards. + */ + return PAGE_ALIGN_DOWN(mmap_upper_limit(rlim_stack) - rnd); +#else unsigned long gap = rlim_stack->rlim_cur; unsigned long pad = stack_guard_gap; @@ -431,6 +440,7 @@ static unsigned long mmap_base(unsigned long rnd, struct rlimit *rlim_stack) gap = MAX_GAP; return PAGE_ALIGN(STACK_TOP - gap - rnd); +#endif } void arch_pick_mmap_layout(struct mm_struct *mm, struct rlimit *rlim_stack) |
