diff options
Diffstat (limited to 'target/linux/patches/6.6.48/armnommu-fix-thread-registers.patch')
-rw-r--r-- | target/linux/patches/6.6.48/armnommu-fix-thread-registers.patch | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/target/linux/patches/6.6.48/armnommu-fix-thread-registers.patch b/target/linux/patches/6.6.48/armnommu-fix-thread-registers.patch deleted file mode 100644 index 8ab2196dc..000000000 --- a/target/linux/patches/6.6.48/armnommu-fix-thread-registers.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 1410ebe685f13c1699a16bf147ae1332e7fd1983 Mon Sep 17 00:00:00 2001 -From: Greg Ungerer <gerg@kernel.org> -Date: Thu, 20 Apr 2023 09:52:08 +1000 -Subject: [PATCH] ARM: start_thread: restore registers on ELF load for noMMU - -The binfmt_elf-fdpic loader is capable of loading constant displacement -ELF format binaries (like those compiled -pie) on noMMU systems as well -as elf-fdpic format binaries. The traditional ELF loader cannot be -enabled on noMMU systems. - -Commit 5e588114329c ("ARM: start_thread(): don't always clear all regs") -fixed the start_thread() code so that it maintains the required -elf-fdpic registers through to the new process, but it only does that if -current has its personality FDPIC_FUNCPTRS bit set. That is true for -elf-fdpic format binaries but will not be true for non-fdpic ELF -binaries. - -Modify the test of the FDPIC_FUNCPTRS personality bit to also carry out -the register restore if this is a noMMU system. This is not perfect, -since it will also preserve these registers on noMMU systems for all -binary format types (could be flat format for example). That won't break -anything, but it is potentially leaking some information into the new -process. But for the noMMU case we need those start time registers set to -be able to finalize the runtime loading of the -pie style ELF binary -(carry out its segment and dynamic relocation processing). - -Unfortunately the FDPIC_FUNCPTRS flag cannot just be enabled for all -elf-fdpic loaded binaries. That personality bit is used for other things -like the controlling the changed behavior for signal handling. - -There is no change in behavior for normal ELF loading on MMU systems. -A -pie style ELF binary built for noMMU systems can be load and run using -the usual ELF loader on an MMU system (elf-fdpic loader not required in -this case). - -Signed-off-by: Greg Ungerer <gerg@kernel.org> ---- - arch/arm/include/asm/processor.h | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/arch/arm/include/asm/processor.h b/arch/arm/include/asm/processor.h -index 326864f79d18..5074cc3ae4e1 100644 ---- a/arch/arm/include/asm/processor.h -+++ b/arch/arm/include/asm/processor.h -@@ -60,7 +60,8 @@ static inline void arch_thread_struct_whitelist(unsigned long *offset, - } \ - memset(regs->uregs, 0, sizeof(regs->uregs)); \ - if (IS_ENABLED(CONFIG_BINFMT_ELF_FDPIC) && \ -- current->personality & FDPIC_FUNCPTRS) { \ -+ ((! IS_ENABLED(CONFIG_MMU)) || \ -+ current->personality & FDPIC_FUNCPTRS)) { \ - regs->ARM_r7 = r7; \ - regs->ARM_r8 = r8; \ - regs->ARM_r9 = r9; \ --- -2.25.1 - |