diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2023-09-20 05:46:05 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2023-09-20 05:46:05 +0200 |
commit | bd4c1685e7e871405c3c94365dfc61786dd2001e (patch) | |
tree | 28046cde279ed119dae6919e1390fa421d19ce87 /target/linux/patches/6.1.49/armnommu-fix-elf-fdpic-personality.patch | |
parent | 0ea0376baf506e22d942587c84d6ff165eefbce2 (diff) |
linux: update to 6.1.53, remove 6.4
Diffstat (limited to 'target/linux/patches/6.1.49/armnommu-fix-elf-fdpic-personality.patch')
-rw-r--r-- | target/linux/patches/6.1.49/armnommu-fix-elf-fdpic-personality.patch | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/target/linux/patches/6.1.49/armnommu-fix-elf-fdpic-personality.patch b/target/linux/patches/6.1.49/armnommu-fix-elf-fdpic-personality.patch deleted file mode 100644 index 78b1a10ff..000000000 --- a/target/linux/patches/6.1.49/armnommu-fix-elf-fdpic-personality.patch +++ /dev/null @@ -1,54 +0,0 @@ -From ab7647c2b04501297c50ce7cdb6f6895b9582d22 Mon Sep 17 00:00:00 2001 -From: Greg Ungerer <gerg@kernel.org> -Date: Fri, 21 Apr 2023 00:21:38 +1000 -Subject: [PATCH] fs: binfmt_elf_efpic: fix personality for fdpic ELF - -The elf-fdpic loader hard sets the process personality to either -PER_LINUX_FDPIC for true elf-fdpic binaries or to PER_LINUX for -normal ELF binaries (in this case they would be constant displacement -compiled with -pie for example). The problem with that is that it -will lose any other bits that may be in the ELF header personality -(such as the "bug emulation" bits). - -On the ARM architecture the ADDR_LIMIT_32BIT flag is used to signify -a normal 32bit binary - as opposed to a legacy 26bit address binary. -This matters since start_thread() will set the ARM CPSR register as -required based on this flag. If the elf-fdpic loader loses this bit -the process will be mis-configured and crash out pretty quickly. - -Modify elf-fdpic loaders personality setting binaries so that it -preserves the upper three bytes by using the SET_PERSONALITY macro -to set it. This macro in the generic case sets PER_LINUX and preserves -the upper bytes. Architectures can override this for their specific -use case, and ARM does exactly this. - -The problem shows up quite easily runing under qemu, but not necessarily -on all types of real ARM hardware. If the underlying ARM processor does -not support the legacy 26-bit addressing mode then everyting will work -as expected. - -Signed-off-by: Greg Ungerer <gerg@kernel.org> ---- - fs/binfmt_elf_fdpic.c | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c -index a05eafcacfb2..f29ae1d96fd7 100644 ---- a/fs/binfmt_elf_fdpic.c -+++ b/fs/binfmt_elf_fdpic.c -@@ -345,10 +345,9 @@ - /* there's now no turning back... the old userspace image is dead, - * defunct, deceased, etc. - */ -+ SET_PERSONALITY(exec_params.hdr); - if (elf_check_fdpic(&exec_params.hdr)) -- set_personality(PER_LINUX_FDPIC); -- else -- set_personality(PER_LINUX); -+ current->personality |= PER_LINUX_FDPIC; - if (elf_read_implies_exec(&exec_params.hdr, executable_stack)) - current->personality |= READ_IMPLIES_EXEC; - --- -2.25.1 - |