summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Pagano <mpagano@gentoo.org>2023-11-28 13:16:17 -0500
committerMike Pagano <mpagano@gentoo.org>2023-11-28 13:16:17 -0500
commit57366090d07d1274891615d2266bbe4fc075316b (patch)
tree16a6df876cd7943368431212838a779d754c4a88
parentLinux patch 6.6.3 (diff)
downloadlinux-patches-57366090d07d1274891615d2266bbe4fc075316b.tar.gz
linux-patches-57366090d07d1274891615d2266bbe4fc075316b.tar.bz2
linux-patches-57366090d07d1274891615d2266bbe4fc075316b.zip
Remove redundant patch6.6-4
Signed-off-by: Mike Pagano <mpagano@gentoo.org>
-rw-r--r--0000_README4
-rw-r--r--1720_parisc-gen-mmap-top-down-layout-and-brk-randomization.patch239
2 files changed, 0 insertions, 243 deletions
diff --git a/0000_README b/0000_README
index 6af1c58b..cbd5f55a 100644
--- a/0000_README
+++ b/0000_README
@@ -63,10 +63,6 @@ Patch: 1700_sparc-address-warray-bound-warnings.patch
From: https://github.com/KSPP/linux/issues/109
Desc: Address -Warray-bounds warnings
-Patch: 1720_parisc-gen-mmap-top-down-layout-and-brk-randomization.patch
-From: https://lore.kernel.org/linux-parisc/ZVH2qeS1bG7%2F1J%2Fl@p100/T/#u
-Desc: Fix the mmap_base() calculation to include the stack-grows-upwards case
-
Patch: 1730_parisc-Disable-prctl.patch
From: https://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux.git
Desc: prctl: Temporarily disable prctl(PR_SET_MDWE) on parisc
diff --git a/1720_parisc-gen-mmap-top-down-layout-and-brk-randomization.patch b/1720_parisc-gen-mmap-top-down-layout-and-brk-randomization.patch
deleted file mode 100644
index 5fe2fe9d..00000000
--- a/1720_parisc-gen-mmap-top-down-layout-and-brk-randomization.patch
+++ /dev/null
@@ -1,239 +0,0 @@
-parisc: Fix mmap_base calculation when stack grows upwards
-
-Matoro reported various userspace crashes on the parisc platform with kernel
-6.6 and bisected it to commit 3033cd430768 ("parisc: Use generic mmap top-down
-layout and brk randomization").
-
-That commit switched parisc to use the common infrastructure to calculate
-mmap_base, but missed that the mmap_base() function takes care for
-architectures where the stack grows downwards only.
-
-Fix the mmap_base() calculation to include the stack-grows-upwards case
-and thus fix the userspace crashes on parisc.
-
-Reported-by: matoro <matoro_mailinglist_kernel@matoro.tk>
-Signed-off-by: Helge Deller <deller@gmx.de>
-Tested-by: matoro <matoro_mailinglist_kernel@matoro.tk>
-Fixes: 3033cd430768 ("parisc: Use generic mmap top-down layout and brk randomization")
-Cc: <stable@vger.kernel.org> # v6.6+
-
-diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
-index fd69dfa0cdab..a7c9c0e69e5a 100644
---- a/arch/parisc/Kconfig
-+++ b/arch/parisc/Kconfig
-@@ -140,11 +140,11 @@ config ARCH_MMAP_RND_COMPAT_BITS_MIN
- default 8
-
- config ARCH_MMAP_RND_BITS_MAX
-- default 24 if 64BIT
-- default 17
-+ default 18 if 64BIT
-+ default 13
-
- config ARCH_MMAP_RND_COMPAT_BITS_MAX
-- default 17
-+ default 13
-
- # unless you want to implement ACPI on PA-RISC ... ;-)
- config PM
-diff --git a/arch/parisc/include/asm/elf.h b/arch/parisc/include/asm/elf.h
-index 140eaa97bf21..2d73d3c3cd37 100644
---- a/arch/parisc/include/asm/elf.h
-+++ b/arch/parisc/include/asm/elf.h
-@@ -349,15 +349,7 @@ struct pt_regs; /* forward declaration... */
-
- #define ELF_HWCAP 0
-
--/* Masks for stack and mmap randomization */
--#define BRK_RND_MASK (is_32bit_task() ? 0x07ffUL : 0x3ffffUL)
--#define MMAP_RND_MASK (is_32bit_task() ? 0x1fffUL : 0x3ffffUL)
--#define STACK_RND_MASK MMAP_RND_MASK
--
--struct mm_struct;
--extern unsigned long arch_randomize_brk(struct mm_struct *);
--#define arch_randomize_brk arch_randomize_brk
--
-+#define STACK_RND_MASK 0x7ff /* 8MB of VA */
-
- #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
- struct linux_binprm;
-diff --git a/arch/parisc/include/asm/processor.h b/arch/parisc/include/asm/processor.h
-index c05d121cf5d0..982aca20f56f 100644
---- a/arch/parisc/include/asm/processor.h
-+++ b/arch/parisc/include/asm/processor.h
-@@ -47,6 +47,8 @@
-
- #ifndef __ASSEMBLY__
-
-+struct rlimit;
-+unsigned long mmap_upper_limit(struct rlimit *rlim_stack);
- unsigned long calc_max_stack_size(unsigned long stack_max);
-
- /*
-diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c
-index ab896eff7a1d..98af719d5f85 100644
---- a/arch/parisc/kernel/sys_parisc.c
-+++ b/arch/parisc/kernel/sys_parisc.c
-@@ -77,7 +77,7 @@ unsigned long calc_max_stack_size(unsigned long stack_max)
- * indicating that "current" should be used instead of a passed-in
- * value from the exec bprm as done with arch_pick_mmap_layout().
- */
--static unsigned long mmap_upper_limit(struct rlimit *rlim_stack)
-+unsigned long mmap_upper_limit(struct rlimit *rlim_stack)
- {
- unsigned long stack_base;
-
-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)
-
-^ permalink raw reply related [flat|nested] 2+ messages in thread
-* Re: [PATCH] parisc: Fix mmap_base calculation when stack grows upwards
- 2023-11-13 10:12 [PATCH] parisc: Fix mmap_base calculation when stack grows upwards Helge Deller
-@ 2023-11-19 14:30 ` Sam James
- 0 siblings, 0 replies; 2+ messages in thread
-From: Sam James @ 2023-11-19 14:30 UTC (permalink / raw)
- To: Helge Deller; +Cc: Andrew Morton, linux-mm, linux-kernel, linux-parisc, matoro
-
-
-Helge Deller <deller@gmx.de> writes:
-
-> Matoro reported various userspace crashes on the parisc platform with kernel
-> 6.6 and bisected it to commit 3033cd430768 ("parisc: Use generic mmap top-down
-> layout and brk randomization").
->
-> That commit switched parisc to use the common infrastructure to calculate
-> mmap_base, but missed that the mmap_base() function takes care for
-> architectures where the stack grows downwards only.
->
-> Fix the mmap_base() calculation to include the stack-grows-upwards case
-> and thus fix the userspace crashes on parisc.
->
-> Reported-by: matoro <matoro_mailinglist_kernel@matoro.tk>
-> Signed-off-by: Helge Deller <deller@gmx.de>
-> Tested-by: matoro <matoro_mailinglist_kernel@matoro.tk>
-> Fixes: 3033cd430768 ("parisc: Use generic mmap top-down layout and brk randomization")
-> Cc: <stable@vger.kernel.org> # v6.6+
-
-Sorry to be impatient, but pinging this. HPPA is unusable on 6.6.x without this patch.
-
->
-> diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
-> index fd69dfa0cdab..a7c9c0e69e5a 100644
-> --- a/arch/parisc/Kconfig
-> +++ b/arch/parisc/Kconfig
-> @@ -140,11 +140,11 @@ config ARCH_MMAP_RND_COMPAT_BITS_MIN
-> default 8
->
-> config ARCH_MMAP_RND_BITS_MAX
-> - default 24 if 64BIT
-> - default 17
-> + default 18 if 64BIT
-> + default 13
->
-> config ARCH_MMAP_RND_COMPAT_BITS_MAX
-> - default 17
-> + default 13
->
-> # unless you want to implement ACPI on PA-RISC ... ;-)
-> config PM
-> diff --git a/arch/parisc/include/asm/elf.h b/arch/parisc/include/asm/elf.h
-> index 140eaa97bf21..2d73d3c3cd37 100644
-> --- a/arch/parisc/include/asm/elf.h
-> +++ b/arch/parisc/include/asm/elf.h
-> @@ -349,15 +349,7 @@ struct pt_regs; /* forward declaration... */
->
-> #define ELF_HWCAP 0
->
-> -/* Masks for stack and mmap randomization */
-> -#define BRK_RND_MASK (is_32bit_task() ? 0x07ffUL : 0x3ffffUL)
-> -#define MMAP_RND_MASK (is_32bit_task() ? 0x1fffUL : 0x3ffffUL)
-> -#define STACK_RND_MASK MMAP_RND_MASK
-> -
-> -struct mm_struct;
-> -extern unsigned long arch_randomize_brk(struct mm_struct *);
-> -#define arch_randomize_brk arch_randomize_brk
-> -
-> +#define STACK_RND_MASK 0x7ff /* 8MB of VA */
->
-> #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
-> struct linux_binprm;
-> diff --git a/arch/parisc/include/asm/processor.h b/arch/parisc/include/asm/processor.h
-> index c05d121cf5d0..982aca20f56f 100644
-> --- a/arch/parisc/include/asm/processor.h
-> +++ b/arch/parisc/include/asm/processor.h
-> @@ -47,6 +47,8 @@
->
-> #ifndef __ASSEMBLY__
->
-> +struct rlimit;
-> +unsigned long mmap_upper_limit(struct rlimit *rlim_stack);
-> unsigned long calc_max_stack_size(unsigned long stack_max);
->
-> /*
-> diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c
-> index ab896eff7a1d..98af719d5f85 100644
-> --- a/arch/parisc/kernel/sys_parisc.c
-> +++ b/arch/parisc/kernel/sys_parisc.c
-> @@ -77,7 +77,7 @@ unsigned long calc_max_stack_size(unsigned long stack_max)
-> * indicating that "current" should be used instead of a passed-in
-> * value from the exec bprm as done with arch_pick_mmap_layout().
-> */
-> -static unsigned long mmap_upper_limit(struct rlimit *rlim_stack)
-> +unsigned long mmap_upper_limit(struct rlimit *rlim_stack)
-> {
-> unsigned long stack_base;
->
-> 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)