From: Greg Kroah-Hartman Date: Mon, 23 Jan 2023 09:44:31 +0000 (+0100) Subject: drop buildid patches from all branches X-Git-Tag: v4.14.304~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=12b387615345989d28cb0dd0295d16385b733061;p=thirdparty%2Fkernel%2Fstable-queue.git drop buildid patches from all branches --- diff --git a/queue-5.10/arch-fix-broken-buildid-for-arm64-and-riscv.patch b/queue-5.10/arch-fix-broken-buildid-for-arm64-and-riscv.patch deleted file mode 100644 index 2ce6c27795c..00000000000 --- a/queue-5.10/arch-fix-broken-buildid-for-arm64-and-riscv.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 99cb0d917ffa1ab628bb67364ca9b162c07699b1 Mon Sep 17 00:00:00 2001 -From: Masahiro Yamada -Date: Tue, 27 Dec 2022 03:45:37 +0900 -Subject: arch: fix broken BuildID for arm64 and riscv - -From: Masahiro Yamada - -commit 99cb0d917ffa1ab628bb67364ca9b162c07699b1 upstream. - -Dennis Gilmore reports that the BuildID is missing in the arm64 vmlinux -since commit 994b7ac1697b ("arm64: remove special treatment for the -link order of head.o"). - -The issue is that the type of .notes section, which contains the BuildID, -changed from NOTES to PROGBITS. - -Ard Biesheuvel figured out that whichever object gets linked first gets -to decide the type of a section. The PROGBITS type is the result of the -compiler emitting .note.GNU-stack as PROGBITS rather than NOTE. - -While Ard provided a fix for arm64, I want to fix this globally because -the same issue is happening on riscv since commit 2348e6bf4421 ("riscv: -remove special treatment for the link order of head.o"). This problem -will happen in general for other architectures if they start to drop -unneeded entries from scripts/head-object-list.txt. - -Discard .note.GNU-stack in include/asm-generic/vmlinux.lds.h. - -Link: https://lore.kernel.org/lkml/CAABkxwuQoz1CTbyb57n0ZX65eSYiTonFCU8-LCQc=74D=xE=rA@mail.gmail.com/ -Fixes: 994b7ac1697b ("arm64: remove special treatment for the link order of head.o") -Fixes: 2348e6bf4421 ("riscv: remove special treatment for the link order of head.o") -Cc: Tom Saeger -Reported-by: Dennis Gilmore -Suggested-by: Ard Biesheuvel -Signed-off-by: Masahiro Yamada -Acked-by: Palmer Dabbelt -Signed-off-by: Greg Kroah-Hartman ---- - include/asm-generic/vmlinux.lds.h | 5 +++++ - 1 file changed, 5 insertions(+) - ---- a/include/asm-generic/vmlinux.lds.h -+++ b/include/asm-generic/vmlinux.lds.h -@@ -906,7 +906,12 @@ - #define TRACEDATA - #endif - -+/* -+ * Discard .note.GNU-stack, which is emitted as PROGBITS by the compiler. -+ * Otherwise, the type of .notes section would become PROGBITS instead of NOTES. -+ */ - #define NOTES \ -+ /DISCARD/ : { *(.note.GNU-stack) } \ - .notes : AT(ADDR(.notes) - LOAD_OFFSET) { \ - __start_notes = .; \ - KEEP(*(.note.*)) \ diff --git a/queue-5.10/powerpc-vmlinux.lds-define-runtime_discard_exit.patch b/queue-5.10/powerpc-vmlinux.lds-define-runtime_discard_exit.patch deleted file mode 100644 index 807825e883d..00000000000 --- a/queue-5.10/powerpc-vmlinux.lds-define-runtime_discard_exit.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 4b9880dbf3bdba3a7c56445137c3d0e30aaa0a40 Mon Sep 17 00:00:00 2001 -From: Michael Ellerman -Date: Thu, 5 Jan 2023 22:05:04 +1100 -Subject: powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT - -From: Michael Ellerman - -commit 4b9880dbf3bdba3a7c56445137c3d0e30aaa0a40 upstream. - -The powerpc linker script explicitly includes .exit.text, because -otherwise the link fails due to references from __bug_table and -__ex_table. The code is freed (discarded) at runtime along with -.init.text and data. - -That has worked in the past despite powerpc not defining -RUNTIME_DISCARD_EXIT because DISCARDS appears late in the powerpc linker -script (line 410), and the explicit inclusion of .exit.text -earlier (line 280) supersedes the discard. - -However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and -riscv") introduced an earlier use of DISCARD as part of the RO_DATA -macro (line 136). With binutils < 2.36 that causes the DISCARD -directives later in the script to be applied earlier [1], causing -.exit.text to actually be discarded at link time, leading to build -errors: - - '.exit.text' referenced in section '__bug_table' of crypto/algboss.o: defined in - discarded section '.exit.text' of crypto/algboss.o - '.exit.text' referenced in section '__ex_table' of drivers/nvdimm/core.o: defined in - discarded section '.exit.text' of drivers/nvdimm/core.o - -Fix it by defining RUNTIME_DISCARD_EXIT, which causes the generic -DISCARDS macro to not include .exit.text at all. - -1: https://lore.kernel.org/lkml/87fscp2v7k.fsf@igel.home/ - -Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") -Signed-off-by: Michael Ellerman -Link: https://lore.kernel.org/r/20230105132349.384666-1-mpe@ellerman.id.au -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/kernel/vmlinux.lds.S | 1 + - 1 file changed, 1 insertion(+) - ---- a/arch/powerpc/kernel/vmlinux.lds.S -+++ b/arch/powerpc/kernel/vmlinux.lds.S -@@ -8,6 +8,7 @@ - #define BSS_FIRST_SECTIONS *(.bss.prominit) - #define EMITS_PT_NOTE - #define RO_EXCEPTION_TABLE_ALIGN 0 -+#define RUNTIME_DISCARD_EXIT - - #include - #include diff --git a/queue-5.10/powerpc-vmlinux.lds-don-t-discard-.comment.patch b/queue-5.10/powerpc-vmlinux.lds-don-t-discard-.comment.patch deleted file mode 100644 index af2ebdbb7fc..00000000000 --- a/queue-5.10/powerpc-vmlinux.lds-don-t-discard-.comment.patch +++ /dev/null @@ -1,43 +0,0 @@ -From be5f95c8779e19779dd81927c8574fec5aaba36c Mon Sep 17 00:00:00 2001 -From: Michael Ellerman -Date: Thu, 5 Jan 2023 22:42:59 +1100 -Subject: powerpc/vmlinux.lds: Don't discard .comment - -From: Michael Ellerman - -commit be5f95c8779e19779dd81927c8574fec5aaba36c upstream. - -Although the powerpc linker script mentions .comment in the DISCARD -section, that has never actually caused it to be discarded, because the -earlier ELF_DETAILS macro (previously STABS_DEBUG) explicitly includes -.comment. - -However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and -riscv") introduced an earlier use of DISCARD as part of the RO_DATA -macro. With binutils < 2.36 that causes the DISCARD directives later in -the script to be applied earlier, causing .comment to actually be -discarded. - -It's confusing to explicitly include and discard .comment, and even more -so if the behaviour depends on the toolchain version. So don't discard -.comment in order to maintain the existing behaviour in all cases. - -Fixes: 83a092cf95f2 ("powerpc: Link warning for orphan sections") -Signed-off-by: Michael Ellerman -Link: https://lore.kernel.org/r/20230105132349.384666-3-mpe@ellerman.id.au -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/kernel/vmlinux.lds.S | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/powerpc/kernel/vmlinux.lds.S -+++ b/arch/powerpc/kernel/vmlinux.lds.S -@@ -379,7 +379,7 @@ SECTIONS - DISCARDS - /DISCARD/ : { - *(*.EMB.apuinfo) -- *(.glink .iplt .plt .comment) -+ *(.glink .iplt .plt) - *(.gnu.version*) - *(.gnu.attributes) - *(.eh_frame) diff --git a/queue-5.10/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch b/queue-5.10/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch deleted file mode 100644 index f670be81ce3..00000000000 --- a/queue-5.10/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 07b050f9290ee012a407a0f64151db902a1520f5 Mon Sep 17 00:00:00 2001 -From: Michael Ellerman -Date: Thu, 5 Jan 2023 22:28:36 +1100 -Subject: powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds - -From: Michael Ellerman - -commit 07b050f9290ee012a407a0f64151db902a1520f5 upstream. - -Relocatable kernels must not discard relocations, they need to be -processed at runtime. As such they are included for CONFIG_RELOCATABLE -builds in the powerpc linker script (line 340). - -However they are also unconditionally discarded later in the -script (line 414). Previously that worked because the earlier inclusion -superseded the discard. - -However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and -riscv") introduced an earlier use of DISCARD as part of the RO_DATA -macro (line 137). With binutils < 2.36 that causes the DISCARD -directives later in the script to be applied earlier, causing .rela* to -actually be discarded at link time, leading to build warnings and a -kernel that doesn't boot: - - ld: warning: discarding dynamic section .rela.init.rodata - -Fix it by conditionally discarding .rela* only when CONFIG_RELOCATABLE -is disabled. - -Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") -Signed-off-by: Michael Ellerman -Link: https://lore.kernel.org/r/20230105132349.384666-2-mpe@ellerman.id.au -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/kernel/vmlinux.lds.S | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/arch/powerpc/kernel/vmlinux.lds.S -+++ b/arch/powerpc/kernel/vmlinux.lds.S -@@ -379,9 +379,12 @@ SECTIONS - DISCARDS - /DISCARD/ : { - *(*.EMB.apuinfo) -- *(.glink .iplt .plt .rela* .comment) -+ *(.glink .iplt .plt .comment) - *(.gnu.version*) - *(.gnu.attributes) - *(.eh_frame) -+#ifndef CONFIG_RELOCATABLE -+ *(.rela*) -+#endif - } - } diff --git a/queue-5.10/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch b/queue-5.10/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch deleted file mode 100644 index b34a3e2778e..00000000000 --- a/queue-5.10/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch +++ /dev/null @@ -1,69 +0,0 @@ -From a494398bde273143c2352dd373cad8211f7d94b2 Mon Sep 17 00:00:00 2001 -From: Masahiro Yamada -Date: Thu, 5 Jan 2023 12:13:06 +0900 -Subject: s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36 - -From: Masahiro Yamada - -commit a494398bde273143c2352dd373cad8211f7d94b2 upstream. - -Nathan Chancellor reports that the s390 vmlinux fails to link with -GNU ld < 2.36 since commit 99cb0d917ffa ("arch: fix broken BuildID -for arm64 and riscv"). - -It happens for defconfig, or more specifically for CONFIG_EXPOLINE=y. - - $ s390x-linux-gnu-ld --version | head -n1 - GNU ld (GNU Binutils for Debian) 2.35.2 - $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- allnoconfig - $ ./scripts/config -e CONFIG_EXPOLINE - $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- olddefconfig - $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- - `.exit.text' referenced in section `.s390_return_reg' of drivers/base/dd.o: defined in discarded section `.exit.text' of drivers/base/dd.o - make[1]: *** [scripts/Makefile.vmlinux:34: vmlinux] Error 1 - make: *** [Makefile:1252: vmlinux] Error 2 - -arch/s390/kernel/vmlinux.lds.S wants to keep EXIT_TEXT: - - .exit.text : { - EXIT_TEXT - } - -But, at the same time, EXIT_TEXT is thrown away by DISCARD because -s390 does not define RUNTIME_DISCARD_EXIT. - -I still do not understand why the latter wins after 99cb0d917ffa, -but defining RUNTIME_DISCARD_EXIT seems correct because the comment -line in arch/s390/kernel/vmlinux.lds.S says: - - /* - * .exit.text is discarded at runtime, not link time, - * to deal with references from __bug_table - */ - -Nathan also found that binutils commit 21401fc7bf67 ("Duplicate output -sections in scripts") cured this issue, so we cannot reproduce it with -binutils 2.36+, but it is better to not rely on it. - -Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") -Link: https://lore.kernel.org/all/Y7Jal56f6UBh1abE@dev-arch.thelio-3990X/ -Reported-by: Nathan Chancellor -Signed-off-by: Masahiro Yamada -Link: https://lore.kernel.org/r/20230105031306.1455409-1-masahiroy@kernel.org -Signed-off-by: Heiko Carstens -Signed-off-by: Greg Kroah-Hartman ---- - arch/s390/kernel/vmlinux.lds.S | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/arch/s390/kernel/vmlinux.lds.S -+++ b/arch/s390/kernel/vmlinux.lds.S -@@ -15,6 +15,8 @@ - /* Handle ro_after_init data on our own. */ - #define RO_AFTER_INIT_DATA - -+#define RUNTIME_DISCARD_EXIT -+ - #define EMITS_PT_NOTE - - #include diff --git a/queue-5.10/series b/queue-5.10/series index 820d79ce66a..ed3f875ab28 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -82,11 +82,6 @@ efi-rt-wrapper-add-missing-include.patch revert-drm-amdgpu-make-display-pinning-more-flexible-v2.patch x86-fpu-use-_alignof-to-avoid-undefined-behavior-in-type_align.patch tracing-use-alignof__-struct-type-b-instead-of-offsetof.patch -arch-fix-broken-buildid-for-arm64-and-riscv.patch -s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch -powerpc-vmlinux.lds-define-runtime_discard_exit.patch -powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch -powerpc-vmlinux.lds-don-t-discard-.comment.patch io_uring-io_kiocb_update_pos-should-not-touch-file-for-non-1-offset.patch io_uring-net-fix-fast_iov-assignment-in-io_setup_async_msg.patch net-ulp-use-consistent-error-code-when-blocking-ulp.patch diff --git a/queue-5.15/arch-fix-broken-buildid-for-arm64-and-riscv.patch b/queue-5.15/arch-fix-broken-buildid-for-arm64-and-riscv.patch deleted file mode 100644 index 074ac117ead..00000000000 --- a/queue-5.15/arch-fix-broken-buildid-for-arm64-and-riscv.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 99cb0d917ffa1ab628bb67364ca9b162c07699b1 Mon Sep 17 00:00:00 2001 -From: Masahiro Yamada -Date: Tue, 27 Dec 2022 03:45:37 +0900 -Subject: arch: fix broken BuildID for arm64 and riscv - -From: Masahiro Yamada - -commit 99cb0d917ffa1ab628bb67364ca9b162c07699b1 upstream. - -Dennis Gilmore reports that the BuildID is missing in the arm64 vmlinux -since commit 994b7ac1697b ("arm64: remove special treatment for the -link order of head.o"). - -The issue is that the type of .notes section, which contains the BuildID, -changed from NOTES to PROGBITS. - -Ard Biesheuvel figured out that whichever object gets linked first gets -to decide the type of a section. The PROGBITS type is the result of the -compiler emitting .note.GNU-stack as PROGBITS rather than NOTE. - -While Ard provided a fix for arm64, I want to fix this globally because -the same issue is happening on riscv since commit 2348e6bf4421 ("riscv: -remove special treatment for the link order of head.o"). This problem -will happen in general for other architectures if they start to drop -unneeded entries from scripts/head-object-list.txt. - -Discard .note.GNU-stack in include/asm-generic/vmlinux.lds.h. - -Link: https://lore.kernel.org/lkml/CAABkxwuQoz1CTbyb57n0ZX65eSYiTonFCU8-LCQc=74D=xE=rA@mail.gmail.com/ -Fixes: 994b7ac1697b ("arm64: remove special treatment for the link order of head.o") -Fixes: 2348e6bf4421 ("riscv: remove special treatment for the link order of head.o") -Cc: Tom Saeger -Reported-by: Dennis Gilmore -Suggested-by: Ard Biesheuvel -Signed-off-by: Masahiro Yamada -Acked-by: Palmer Dabbelt -Signed-off-by: Greg Kroah-Hartman ---- - include/asm-generic/vmlinux.lds.h | 5 +++++ - 1 file changed, 5 insertions(+) - ---- a/include/asm-generic/vmlinux.lds.h -+++ b/include/asm-generic/vmlinux.lds.h -@@ -903,7 +903,12 @@ - #define PRINTK_INDEX - #endif - -+/* -+ * Discard .note.GNU-stack, which is emitted as PROGBITS by the compiler. -+ * Otherwise, the type of .notes section would become PROGBITS instead of NOTES. -+ */ - #define NOTES \ -+ /DISCARD/ : { *(.note.GNU-stack) } \ - .notes : AT(ADDR(.notes) - LOAD_OFFSET) { \ - __start_notes = .; \ - KEEP(*(.note.*)) \ diff --git a/queue-5.15/powerpc-vmlinux.lds-define-runtime_discard_exit.patch b/queue-5.15/powerpc-vmlinux.lds-define-runtime_discard_exit.patch deleted file mode 100644 index 93e80111145..00000000000 --- a/queue-5.15/powerpc-vmlinux.lds-define-runtime_discard_exit.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 4b9880dbf3bdba3a7c56445137c3d0e30aaa0a40 Mon Sep 17 00:00:00 2001 -From: Michael Ellerman -Date: Thu, 5 Jan 2023 22:05:04 +1100 -Subject: powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT - -From: Michael Ellerman - -commit 4b9880dbf3bdba3a7c56445137c3d0e30aaa0a40 upstream. - -The powerpc linker script explicitly includes .exit.text, because -otherwise the link fails due to references from __bug_table and -__ex_table. The code is freed (discarded) at runtime along with -.init.text and data. - -That has worked in the past despite powerpc not defining -RUNTIME_DISCARD_EXIT because DISCARDS appears late in the powerpc linker -script (line 410), and the explicit inclusion of .exit.text -earlier (line 280) supersedes the discard. - -However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and -riscv") introduced an earlier use of DISCARD as part of the RO_DATA -macro (line 136). With binutils < 2.36 that causes the DISCARD -directives later in the script to be applied earlier [1], causing -.exit.text to actually be discarded at link time, leading to build -errors: - - '.exit.text' referenced in section '__bug_table' of crypto/algboss.o: defined in - discarded section '.exit.text' of crypto/algboss.o - '.exit.text' referenced in section '__ex_table' of drivers/nvdimm/core.o: defined in - discarded section '.exit.text' of drivers/nvdimm/core.o - -Fix it by defining RUNTIME_DISCARD_EXIT, which causes the generic -DISCARDS macro to not include .exit.text at all. - -1: https://lore.kernel.org/lkml/87fscp2v7k.fsf@igel.home/ - -Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") -Signed-off-by: Michael Ellerman -Link: https://lore.kernel.org/r/20230105132349.384666-1-mpe@ellerman.id.au -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/kernel/vmlinux.lds.S | 1 + - 1 file changed, 1 insertion(+) - ---- a/arch/powerpc/kernel/vmlinux.lds.S -+++ b/arch/powerpc/kernel/vmlinux.lds.S -@@ -8,6 +8,7 @@ - #define BSS_FIRST_SECTIONS *(.bss.prominit) - #define EMITS_PT_NOTE - #define RO_EXCEPTION_TABLE_ALIGN 0 -+#define RUNTIME_DISCARD_EXIT - - #define SOFT_MASK_TABLE(align) \ - . = ALIGN(align); \ diff --git a/queue-5.15/powerpc-vmlinux.lds-don-t-discard-.comment.patch b/queue-5.15/powerpc-vmlinux.lds-don-t-discard-.comment.patch deleted file mode 100644 index 631e8dfd1c5..00000000000 --- a/queue-5.15/powerpc-vmlinux.lds-don-t-discard-.comment.patch +++ /dev/null @@ -1,43 +0,0 @@ -From be5f95c8779e19779dd81927c8574fec5aaba36c Mon Sep 17 00:00:00 2001 -From: Michael Ellerman -Date: Thu, 5 Jan 2023 22:42:59 +1100 -Subject: powerpc/vmlinux.lds: Don't discard .comment - -From: Michael Ellerman - -commit be5f95c8779e19779dd81927c8574fec5aaba36c upstream. - -Although the powerpc linker script mentions .comment in the DISCARD -section, that has never actually caused it to be discarded, because the -earlier ELF_DETAILS macro (previously STABS_DEBUG) explicitly includes -.comment. - -However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and -riscv") introduced an earlier use of DISCARD as part of the RO_DATA -macro. With binutils < 2.36 that causes the DISCARD directives later in -the script to be applied earlier, causing .comment to actually be -discarded. - -It's confusing to explicitly include and discard .comment, and even more -so if the behaviour depends on the toolchain version. So don't discard -.comment in order to maintain the existing behaviour in all cases. - -Fixes: 83a092cf95f2 ("powerpc: Link warning for orphan sections") -Signed-off-by: Michael Ellerman -Link: https://lore.kernel.org/r/20230105132349.384666-3-mpe@ellerman.id.au -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/kernel/vmlinux.lds.S | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/powerpc/kernel/vmlinux.lds.S -+++ b/arch/powerpc/kernel/vmlinux.lds.S -@@ -400,7 +400,7 @@ SECTIONS - DISCARDS - /DISCARD/ : { - *(*.EMB.apuinfo) -- *(.glink .iplt .plt .comment) -+ *(.glink .iplt .plt) - *(.gnu.version*) - *(.gnu.attributes) - *(.eh_frame) diff --git a/queue-5.15/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch b/queue-5.15/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch deleted file mode 100644 index 8638f6a6e57..00000000000 --- a/queue-5.15/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 07b050f9290ee012a407a0f64151db902a1520f5 Mon Sep 17 00:00:00 2001 -From: Michael Ellerman -Date: Thu, 5 Jan 2023 22:28:36 +1100 -Subject: powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds - -From: Michael Ellerman - -commit 07b050f9290ee012a407a0f64151db902a1520f5 upstream. - -Relocatable kernels must not discard relocations, they need to be -processed at runtime. As such they are included for CONFIG_RELOCATABLE -builds in the powerpc linker script (line 340). - -However they are also unconditionally discarded later in the -script (line 414). Previously that worked because the earlier inclusion -superseded the discard. - -However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and -riscv") introduced an earlier use of DISCARD as part of the RO_DATA -macro (line 137). With binutils < 2.36 that causes the DISCARD -directives later in the script to be applied earlier, causing .rela* to -actually be discarded at link time, leading to build warnings and a -kernel that doesn't boot: - - ld: warning: discarding dynamic section .rela.init.rodata - -Fix it by conditionally discarding .rela* only when CONFIG_RELOCATABLE -is disabled. - -Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") -Signed-off-by: Michael Ellerman -Link: https://lore.kernel.org/r/20230105132349.384666-2-mpe@ellerman.id.au -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/kernel/vmlinux.lds.S | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/arch/powerpc/kernel/vmlinux.lds.S -+++ b/arch/powerpc/kernel/vmlinux.lds.S -@@ -400,9 +400,12 @@ SECTIONS - DISCARDS - /DISCARD/ : { - *(*.EMB.apuinfo) -- *(.glink .iplt .plt .rela* .comment) -+ *(.glink .iplt .plt .comment) - *(.gnu.version*) - *(.gnu.attributes) - *(.eh_frame) -+#ifndef CONFIG_RELOCATABLE -+ *(.rela*) -+#endif - } - } diff --git a/queue-5.15/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch b/queue-5.15/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch deleted file mode 100644 index 9bda5bd4bbf..00000000000 --- a/queue-5.15/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch +++ /dev/null @@ -1,69 +0,0 @@ -From a494398bde273143c2352dd373cad8211f7d94b2 Mon Sep 17 00:00:00 2001 -From: Masahiro Yamada -Date: Thu, 5 Jan 2023 12:13:06 +0900 -Subject: s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36 - -From: Masahiro Yamada - -commit a494398bde273143c2352dd373cad8211f7d94b2 upstream. - -Nathan Chancellor reports that the s390 vmlinux fails to link with -GNU ld < 2.36 since commit 99cb0d917ffa ("arch: fix broken BuildID -for arm64 and riscv"). - -It happens for defconfig, or more specifically for CONFIG_EXPOLINE=y. - - $ s390x-linux-gnu-ld --version | head -n1 - GNU ld (GNU Binutils for Debian) 2.35.2 - $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- allnoconfig - $ ./scripts/config -e CONFIG_EXPOLINE - $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- olddefconfig - $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- - `.exit.text' referenced in section `.s390_return_reg' of drivers/base/dd.o: defined in discarded section `.exit.text' of drivers/base/dd.o - make[1]: *** [scripts/Makefile.vmlinux:34: vmlinux] Error 1 - make: *** [Makefile:1252: vmlinux] Error 2 - -arch/s390/kernel/vmlinux.lds.S wants to keep EXIT_TEXT: - - .exit.text : { - EXIT_TEXT - } - -But, at the same time, EXIT_TEXT is thrown away by DISCARD because -s390 does not define RUNTIME_DISCARD_EXIT. - -I still do not understand why the latter wins after 99cb0d917ffa, -but defining RUNTIME_DISCARD_EXIT seems correct because the comment -line in arch/s390/kernel/vmlinux.lds.S says: - - /* - * .exit.text is discarded at runtime, not link time, - * to deal with references from __bug_table - */ - -Nathan also found that binutils commit 21401fc7bf67 ("Duplicate output -sections in scripts") cured this issue, so we cannot reproduce it with -binutils 2.36+, but it is better to not rely on it. - -Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") -Link: https://lore.kernel.org/all/Y7Jal56f6UBh1abE@dev-arch.thelio-3990X/ -Reported-by: Nathan Chancellor -Signed-off-by: Masahiro Yamada -Link: https://lore.kernel.org/r/20230105031306.1455409-1-masahiroy@kernel.org -Signed-off-by: Heiko Carstens -Signed-off-by: Greg Kroah-Hartman ---- - arch/s390/kernel/vmlinux.lds.S | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/arch/s390/kernel/vmlinux.lds.S -+++ b/arch/s390/kernel/vmlinux.lds.S -@@ -17,6 +17,8 @@ - /* Handle ro_after_init data on our own. */ - #define RO_AFTER_INIT_DATA - -+#define RUNTIME_DISCARD_EXIT -+ - #define EMITS_PT_NOTE - - #include diff --git a/queue-5.15/series b/queue-5.15/series index 5e85b568b25..5120f56f2e0 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -103,11 +103,6 @@ efi-rt-wrapper-add-missing-include.patch revert-drm-amdgpu-make-display-pinning-more-flexible-v2.patch x86-fpu-use-_alignof-to-avoid-undefined-behavior-in-type_align.patch tracing-use-alignof__-struct-type-b-instead-of-offsetof.patch -arch-fix-broken-buildid-for-arm64-and-riscv.patch -s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch -powerpc-vmlinux.lds-define-runtime_discard_exit.patch -powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch -powerpc-vmlinux.lds-don-t-discard-.comment.patch io_uring-io_kiocb_update_pos-should-not-touch-file-for-non-1-offset.patch io_uring-net-fix-fast_iov-assignment-in-io_setup_async_msg.patch net-ulp-use-consistent-error-code-when-blocking-ulp.patch diff --git a/queue-5.4/arch-fix-broken-buildid-for-arm64-and-riscv.patch b/queue-5.4/arch-fix-broken-buildid-for-arm64-and-riscv.patch deleted file mode 100644 index 593f1d4d0b9..00000000000 --- a/queue-5.4/arch-fix-broken-buildid-for-arm64-and-riscv.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 99cb0d917ffa1ab628bb67364ca9b162c07699b1 Mon Sep 17 00:00:00 2001 -From: Masahiro Yamada -Date: Tue, 27 Dec 2022 03:45:37 +0900 -Subject: arch: fix broken BuildID for arm64 and riscv - -From: Masahiro Yamada - -commit 99cb0d917ffa1ab628bb67364ca9b162c07699b1 upstream. - -Dennis Gilmore reports that the BuildID is missing in the arm64 vmlinux -since commit 994b7ac1697b ("arm64: remove special treatment for the -link order of head.o"). - -The issue is that the type of .notes section, which contains the BuildID, -changed from NOTES to PROGBITS. - -Ard Biesheuvel figured out that whichever object gets linked first gets -to decide the type of a section. The PROGBITS type is the result of the -compiler emitting .note.GNU-stack as PROGBITS rather than NOTE. - -While Ard provided a fix for arm64, I want to fix this globally because -the same issue is happening on riscv since commit 2348e6bf4421 ("riscv: -remove special treatment for the link order of head.o"). This problem -will happen in general for other architectures if they start to drop -unneeded entries from scripts/head-object-list.txt. - -Discard .note.GNU-stack in include/asm-generic/vmlinux.lds.h. - -Link: https://lore.kernel.org/lkml/CAABkxwuQoz1CTbyb57n0ZX65eSYiTonFCU8-LCQc=74D=xE=rA@mail.gmail.com/ -Fixes: 994b7ac1697b ("arm64: remove special treatment for the link order of head.o") -Fixes: 2348e6bf4421 ("riscv: remove special treatment for the link order of head.o") -Cc: Tom Saeger -Reported-by: Dennis Gilmore -Suggested-by: Ard Biesheuvel -Signed-off-by: Masahiro Yamada -Acked-by: Palmer Dabbelt -Signed-off-by: Greg Kroah-Hartman ---- - include/asm-generic/vmlinux.lds.h | 5 +++++ - 1 file changed, 5 insertions(+) - ---- a/include/asm-generic/vmlinux.lds.h -+++ b/include/asm-generic/vmlinux.lds.h -@@ -825,7 +825,12 @@ - #define TRACEDATA - #endif - -+/* -+ * Discard .note.GNU-stack, which is emitted as PROGBITS by the compiler. -+ * Otherwise, the type of .notes section would become PROGBITS instead of NOTES. -+ */ - #define NOTES \ -+ /DISCARD/ : { *(.note.GNU-stack) } \ - .notes : AT(ADDR(.notes) - LOAD_OFFSET) { \ - __start_notes = .; \ - KEEP(*(.note.*)) \ diff --git a/queue-5.4/powerpc-vmlinux.lds-define-runtime_discard_exit.patch b/queue-5.4/powerpc-vmlinux.lds-define-runtime_discard_exit.patch deleted file mode 100644 index f8c64f8a6c5..00000000000 --- a/queue-5.4/powerpc-vmlinux.lds-define-runtime_discard_exit.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 4b9880dbf3bdba3a7c56445137c3d0e30aaa0a40 Mon Sep 17 00:00:00 2001 -From: Michael Ellerman -Date: Thu, 5 Jan 2023 22:05:04 +1100 -Subject: powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT - -From: Michael Ellerman - -commit 4b9880dbf3bdba3a7c56445137c3d0e30aaa0a40 upstream. - -The powerpc linker script explicitly includes .exit.text, because -otherwise the link fails due to references from __bug_table and -__ex_table. The code is freed (discarded) at runtime along with -.init.text and data. - -That has worked in the past despite powerpc not defining -RUNTIME_DISCARD_EXIT because DISCARDS appears late in the powerpc linker -script (line 410), and the explicit inclusion of .exit.text -earlier (line 280) supersedes the discard. - -However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and -riscv") introduced an earlier use of DISCARD as part of the RO_DATA -macro (line 136). With binutils < 2.36 that causes the DISCARD -directives later in the script to be applied earlier [1], causing -.exit.text to actually be discarded at link time, leading to build -errors: - - '.exit.text' referenced in section '__bug_table' of crypto/algboss.o: defined in - discarded section '.exit.text' of crypto/algboss.o - '.exit.text' referenced in section '__ex_table' of drivers/nvdimm/core.o: defined in - discarded section '.exit.text' of drivers/nvdimm/core.o - -Fix it by defining RUNTIME_DISCARD_EXIT, which causes the generic -DISCARDS macro to not include .exit.text at all. - -1: https://lore.kernel.org/lkml/87fscp2v7k.fsf@igel.home/ - -Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") -Signed-off-by: Michael Ellerman -Link: https://lore.kernel.org/r/20230105132349.384666-1-mpe@ellerman.id.au -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/kernel/vmlinux.lds.S | 1 + - 1 file changed, 1 insertion(+) - ---- a/arch/powerpc/kernel/vmlinux.lds.S -+++ b/arch/powerpc/kernel/vmlinux.lds.S -@@ -6,6 +6,7 @@ - #endif - - #define BSS_FIRST_SECTIONS *(.bss.prominit) -+#define RUNTIME_DISCARD_EXIT - - #include - #include diff --git a/queue-5.4/powerpc-vmlinux.lds-don-t-discard-.comment.patch b/queue-5.4/powerpc-vmlinux.lds-don-t-discard-.comment.patch deleted file mode 100644 index 5f9c1ba1331..00000000000 --- a/queue-5.4/powerpc-vmlinux.lds-don-t-discard-.comment.patch +++ /dev/null @@ -1,43 +0,0 @@ -From be5f95c8779e19779dd81927c8574fec5aaba36c Mon Sep 17 00:00:00 2001 -From: Michael Ellerman -Date: Thu, 5 Jan 2023 22:42:59 +1100 -Subject: powerpc/vmlinux.lds: Don't discard .comment - -From: Michael Ellerman - -commit be5f95c8779e19779dd81927c8574fec5aaba36c upstream. - -Although the powerpc linker script mentions .comment in the DISCARD -section, that has never actually caused it to be discarded, because the -earlier ELF_DETAILS macro (previously STABS_DEBUG) explicitly includes -.comment. - -However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and -riscv") introduced an earlier use of DISCARD as part of the RO_DATA -macro. With binutils < 2.36 that causes the DISCARD directives later in -the script to be applied earlier, causing .comment to actually be -discarded. - -It's confusing to explicitly include and discard .comment, and even more -so if the behaviour depends on the toolchain version. So don't discard -.comment in order to maintain the existing behaviour in all cases. - -Fixes: 83a092cf95f2 ("powerpc: Link warning for orphan sections") -Signed-off-by: Michael Ellerman -Link: https://lore.kernel.org/r/20230105132349.384666-3-mpe@ellerman.id.au -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/kernel/vmlinux.lds.S | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/powerpc/kernel/vmlinux.lds.S -+++ b/arch/powerpc/kernel/vmlinux.lds.S -@@ -395,7 +395,7 @@ SECTIONS - DISCARDS - /DISCARD/ : { - *(*.EMB.apuinfo) -- *(.glink .iplt .plt .comment) -+ *(.glink .iplt .plt) - *(.gnu.version*) - *(.gnu.attributes) - *(.eh_frame) diff --git a/queue-5.4/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch b/queue-5.4/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch deleted file mode 100644 index 637621cdd4d..00000000000 --- a/queue-5.4/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 07b050f9290ee012a407a0f64151db902a1520f5 Mon Sep 17 00:00:00 2001 -From: Michael Ellerman -Date: Thu, 5 Jan 2023 22:28:36 +1100 -Subject: powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds - -From: Michael Ellerman - -commit 07b050f9290ee012a407a0f64151db902a1520f5 upstream. - -Relocatable kernels must not discard relocations, they need to be -processed at runtime. As such they are included for CONFIG_RELOCATABLE -builds in the powerpc linker script (line 340). - -However they are also unconditionally discarded later in the -script (line 414). Previously that worked because the earlier inclusion -superseded the discard. - -However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and -riscv") introduced an earlier use of DISCARD as part of the RO_DATA -macro (line 137). With binutils < 2.36 that causes the DISCARD -directives later in the script to be applied earlier, causing .rela* to -actually be discarded at link time, leading to build warnings and a -kernel that doesn't boot: - - ld: warning: discarding dynamic section .rela.init.rodata - -Fix it by conditionally discarding .rela* only when CONFIG_RELOCATABLE -is disabled. - -Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") -Signed-off-by: Michael Ellerman -Link: https://lore.kernel.org/r/20230105132349.384666-2-mpe@ellerman.id.au -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/kernel/vmlinux.lds.S | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/arch/powerpc/kernel/vmlinux.lds.S -+++ b/arch/powerpc/kernel/vmlinux.lds.S -@@ -395,9 +395,12 @@ SECTIONS - DISCARDS - /DISCARD/ : { - *(*.EMB.apuinfo) -- *(.glink .iplt .plt .rela* .comment) -+ *(.glink .iplt .plt .comment) - *(.gnu.version*) - *(.gnu.attributes) - *(.eh_frame) -+#ifndef CONFIG_RELOCATABLE -+ *(.rela*) -+#endif - } - } diff --git a/queue-5.4/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch b/queue-5.4/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch deleted file mode 100644 index a2dbae8b341..00000000000 --- a/queue-5.4/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch +++ /dev/null @@ -1,69 +0,0 @@ -From a494398bde273143c2352dd373cad8211f7d94b2 Mon Sep 17 00:00:00 2001 -From: Masahiro Yamada -Date: Thu, 5 Jan 2023 12:13:06 +0900 -Subject: s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36 - -From: Masahiro Yamada - -commit a494398bde273143c2352dd373cad8211f7d94b2 upstream. - -Nathan Chancellor reports that the s390 vmlinux fails to link with -GNU ld < 2.36 since commit 99cb0d917ffa ("arch: fix broken BuildID -for arm64 and riscv"). - -It happens for defconfig, or more specifically for CONFIG_EXPOLINE=y. - - $ s390x-linux-gnu-ld --version | head -n1 - GNU ld (GNU Binutils for Debian) 2.35.2 - $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- allnoconfig - $ ./scripts/config -e CONFIG_EXPOLINE - $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- olddefconfig - $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- - `.exit.text' referenced in section `.s390_return_reg' of drivers/base/dd.o: defined in discarded section `.exit.text' of drivers/base/dd.o - make[1]: *** [scripts/Makefile.vmlinux:34: vmlinux] Error 1 - make: *** [Makefile:1252: vmlinux] Error 2 - -arch/s390/kernel/vmlinux.lds.S wants to keep EXIT_TEXT: - - .exit.text : { - EXIT_TEXT - } - -But, at the same time, EXIT_TEXT is thrown away by DISCARD because -s390 does not define RUNTIME_DISCARD_EXIT. - -I still do not understand why the latter wins after 99cb0d917ffa, -but defining RUNTIME_DISCARD_EXIT seems correct because the comment -line in arch/s390/kernel/vmlinux.lds.S says: - - /* - * .exit.text is discarded at runtime, not link time, - * to deal with references from __bug_table - */ - -Nathan also found that binutils commit 21401fc7bf67 ("Duplicate output -sections in scripts") cured this issue, so we cannot reproduce it with -binutils 2.36+, but it is better to not rely on it. - -Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") -Link: https://lore.kernel.org/all/Y7Jal56f6UBh1abE@dev-arch.thelio-3990X/ -Reported-by: Nathan Chancellor -Signed-off-by: Masahiro Yamada -Link: https://lore.kernel.org/r/20230105031306.1455409-1-masahiroy@kernel.org -Signed-off-by: Heiko Carstens -Signed-off-by: Greg Kroah-Hartman ---- - arch/s390/kernel/vmlinux.lds.S | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/arch/s390/kernel/vmlinux.lds.S -+++ b/arch/s390/kernel/vmlinux.lds.S -@@ -15,6 +15,8 @@ - /* Handle ro_after_init data on our own. */ - #define RO_AFTER_INIT_DATA - -+#define RUNTIME_DISCARD_EXIT -+ - #include - #include - diff --git a/queue-5.4/series b/queue-5.4/series index 766e308dfb6..0a5f203cd4d 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -48,8 +48,3 @@ drm-i915-re-disable-rc6p-on-sandy-bridge.patch drm-amd-display-fix-set-scaling-doesn-s-work.patch drm-amd-display-fix-color_space_ycbcr2020_type-matrix.patch x86-fpu-use-_alignof-to-avoid-undefined-behavior-in-type_align.patch -arch-fix-broken-buildid-for-arm64-and-riscv.patch -s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch -powerpc-vmlinux.lds-define-runtime_discard_exit.patch -powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch -powerpc-vmlinux.lds-don-t-discard-.comment.patch diff --git a/queue-6.1/arch-fix-broken-buildid-for-arm64-and-riscv.patch b/queue-6.1/arch-fix-broken-buildid-for-arm64-and-riscv.patch deleted file mode 100644 index e9613811f41..00000000000 --- a/queue-6.1/arch-fix-broken-buildid-for-arm64-and-riscv.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 99cb0d917ffa1ab628bb67364ca9b162c07699b1 Mon Sep 17 00:00:00 2001 -From: Masahiro Yamada -Date: Tue, 27 Dec 2022 03:45:37 +0900 -Subject: arch: fix broken BuildID for arm64 and riscv - -From: Masahiro Yamada - -commit 99cb0d917ffa1ab628bb67364ca9b162c07699b1 upstream. - -Dennis Gilmore reports that the BuildID is missing in the arm64 vmlinux -since commit 994b7ac1697b ("arm64: remove special treatment for the -link order of head.o"). - -The issue is that the type of .notes section, which contains the BuildID, -changed from NOTES to PROGBITS. - -Ard Biesheuvel figured out that whichever object gets linked first gets -to decide the type of a section. The PROGBITS type is the result of the -compiler emitting .note.GNU-stack as PROGBITS rather than NOTE. - -While Ard provided a fix for arm64, I want to fix this globally because -the same issue is happening on riscv since commit 2348e6bf4421 ("riscv: -remove special treatment for the link order of head.o"). This problem -will happen in general for other architectures if they start to drop -unneeded entries from scripts/head-object-list.txt. - -Discard .note.GNU-stack in include/asm-generic/vmlinux.lds.h. - -Link: https://lore.kernel.org/lkml/CAABkxwuQoz1CTbyb57n0ZX65eSYiTonFCU8-LCQc=74D=xE=rA@mail.gmail.com/ -Fixes: 994b7ac1697b ("arm64: remove special treatment for the link order of head.o") -Fixes: 2348e6bf4421 ("riscv: remove special treatment for the link order of head.o") -Reported-by: Dennis Gilmore -Suggested-by: Ard Biesheuvel -Signed-off-by: Masahiro Yamada -Acked-by: Palmer Dabbelt -Signed-off-by: Greg Kroah-Hartman ---- - include/asm-generic/vmlinux.lds.h | 5 +++++ - 1 file changed, 5 insertions(+) - ---- a/include/asm-generic/vmlinux.lds.h -+++ b/include/asm-generic/vmlinux.lds.h -@@ -929,7 +929,12 @@ - #define PRINTK_INDEX - #endif - -+/* -+ * Discard .note.GNU-stack, which is emitted as PROGBITS by the compiler. -+ * Otherwise, the type of .notes section would become PROGBITS instead of NOTES. -+ */ - #define NOTES \ -+ /DISCARD/ : { *(.note.GNU-stack) } \ - .notes : AT(ADDR(.notes) - LOAD_OFFSET) { \ - __start_notes = .; \ - KEEP(*(.note.*)) \ diff --git a/queue-6.1/powerpc-vmlinux.lds-define-runtime_discard_exit.patch b/queue-6.1/powerpc-vmlinux.lds-define-runtime_discard_exit.patch deleted file mode 100644 index 93e80111145..00000000000 --- a/queue-6.1/powerpc-vmlinux.lds-define-runtime_discard_exit.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 4b9880dbf3bdba3a7c56445137c3d0e30aaa0a40 Mon Sep 17 00:00:00 2001 -From: Michael Ellerman -Date: Thu, 5 Jan 2023 22:05:04 +1100 -Subject: powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT - -From: Michael Ellerman - -commit 4b9880dbf3bdba3a7c56445137c3d0e30aaa0a40 upstream. - -The powerpc linker script explicitly includes .exit.text, because -otherwise the link fails due to references from __bug_table and -__ex_table. The code is freed (discarded) at runtime along with -.init.text and data. - -That has worked in the past despite powerpc not defining -RUNTIME_DISCARD_EXIT because DISCARDS appears late in the powerpc linker -script (line 410), and the explicit inclusion of .exit.text -earlier (line 280) supersedes the discard. - -However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and -riscv") introduced an earlier use of DISCARD as part of the RO_DATA -macro (line 136). With binutils < 2.36 that causes the DISCARD -directives later in the script to be applied earlier [1], causing -.exit.text to actually be discarded at link time, leading to build -errors: - - '.exit.text' referenced in section '__bug_table' of crypto/algboss.o: defined in - discarded section '.exit.text' of crypto/algboss.o - '.exit.text' referenced in section '__ex_table' of drivers/nvdimm/core.o: defined in - discarded section '.exit.text' of drivers/nvdimm/core.o - -Fix it by defining RUNTIME_DISCARD_EXIT, which causes the generic -DISCARDS macro to not include .exit.text at all. - -1: https://lore.kernel.org/lkml/87fscp2v7k.fsf@igel.home/ - -Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") -Signed-off-by: Michael Ellerman -Link: https://lore.kernel.org/r/20230105132349.384666-1-mpe@ellerman.id.au -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/kernel/vmlinux.lds.S | 1 + - 1 file changed, 1 insertion(+) - ---- a/arch/powerpc/kernel/vmlinux.lds.S -+++ b/arch/powerpc/kernel/vmlinux.lds.S -@@ -8,6 +8,7 @@ - #define BSS_FIRST_SECTIONS *(.bss.prominit) - #define EMITS_PT_NOTE - #define RO_EXCEPTION_TABLE_ALIGN 0 -+#define RUNTIME_DISCARD_EXIT - - #define SOFT_MASK_TABLE(align) \ - . = ALIGN(align); \ diff --git a/queue-6.1/powerpc-vmlinux.lds-don-t-discard-.comment.patch b/queue-6.1/powerpc-vmlinux.lds-don-t-discard-.comment.patch deleted file mode 100644 index 7649ad98e39..00000000000 --- a/queue-6.1/powerpc-vmlinux.lds-don-t-discard-.comment.patch +++ /dev/null @@ -1,43 +0,0 @@ -From be5f95c8779e19779dd81927c8574fec5aaba36c Mon Sep 17 00:00:00 2001 -From: Michael Ellerman -Date: Thu, 5 Jan 2023 22:42:59 +1100 -Subject: powerpc/vmlinux.lds: Don't discard .comment - -From: Michael Ellerman - -commit be5f95c8779e19779dd81927c8574fec5aaba36c upstream. - -Although the powerpc linker script mentions .comment in the DISCARD -section, that has never actually caused it to be discarded, because the -earlier ELF_DETAILS macro (previously STABS_DEBUG) explicitly includes -.comment. - -However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and -riscv") introduced an earlier use of DISCARD as part of the RO_DATA -macro. With binutils < 2.36 that causes the DISCARD directives later in -the script to be applied earlier, causing .comment to actually be -discarded. - -It's confusing to explicitly include and discard .comment, and even more -so if the behaviour depends on the toolchain version. So don't discard -.comment in order to maintain the existing behaviour in all cases. - -Fixes: 83a092cf95f2 ("powerpc: Link warning for orphan sections") -Signed-off-by: Michael Ellerman -Link: https://lore.kernel.org/r/20230105132349.384666-3-mpe@ellerman.id.au -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/kernel/vmlinux.lds.S | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/powerpc/kernel/vmlinux.lds.S -+++ b/arch/powerpc/kernel/vmlinux.lds.S -@@ -411,7 +411,7 @@ SECTIONS - DISCARDS - /DISCARD/ : { - *(*.EMB.apuinfo) -- *(.glink .iplt .plt .comment) -+ *(.glink .iplt .plt) - *(.gnu.version*) - *(.gnu.attributes) - *(.eh_frame) diff --git a/queue-6.1/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch b/queue-6.1/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch deleted file mode 100644 index 155dff2cba8..00000000000 --- a/queue-6.1/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 07b050f9290ee012a407a0f64151db902a1520f5 Mon Sep 17 00:00:00 2001 -From: Michael Ellerman -Date: Thu, 5 Jan 2023 22:28:36 +1100 -Subject: powerpc/vmlinux.lds: Don't discard .rela* for relocatable builds - -From: Michael Ellerman - -commit 07b050f9290ee012a407a0f64151db902a1520f5 upstream. - -Relocatable kernels must not discard relocations, they need to be -processed at runtime. As such they are included for CONFIG_RELOCATABLE -builds in the powerpc linker script (line 340). - -However they are also unconditionally discarded later in the -script (line 414). Previously that worked because the earlier inclusion -superseded the discard. - -However commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and -riscv") introduced an earlier use of DISCARD as part of the RO_DATA -macro (line 137). With binutils < 2.36 that causes the DISCARD -directives later in the script to be applied earlier, causing .rela* to -actually be discarded at link time, leading to build warnings and a -kernel that doesn't boot: - - ld: warning: discarding dynamic section .rela.init.rodata - -Fix it by conditionally discarding .rela* only when CONFIG_RELOCATABLE -is disabled. - -Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") -Signed-off-by: Michael Ellerman -Link: https://lore.kernel.org/r/20230105132349.384666-2-mpe@ellerman.id.au -Signed-off-by: Greg Kroah-Hartman ---- - arch/powerpc/kernel/vmlinux.lds.S | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/arch/powerpc/kernel/vmlinux.lds.S -+++ b/arch/powerpc/kernel/vmlinux.lds.S -@@ -411,9 +411,12 @@ SECTIONS - DISCARDS - /DISCARD/ : { - *(*.EMB.apuinfo) -- *(.glink .iplt .plt .rela* .comment) -+ *(.glink .iplt .plt .comment) - *(.gnu.version*) - *(.gnu.attributes) - *(.eh_frame) -+#ifndef CONFIG_RELOCATABLE -+ *(.rela*) -+#endif - } - } diff --git a/queue-6.1/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch b/queue-6.1/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch deleted file mode 100644 index 9bda5bd4bbf..00000000000 --- a/queue-6.1/s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch +++ /dev/null @@ -1,69 +0,0 @@ -From a494398bde273143c2352dd373cad8211f7d94b2 Mon Sep 17 00:00:00 2001 -From: Masahiro Yamada -Date: Thu, 5 Jan 2023 12:13:06 +0900 -Subject: s390: define RUNTIME_DISCARD_EXIT to fix link error with GNU ld < 2.36 - -From: Masahiro Yamada - -commit a494398bde273143c2352dd373cad8211f7d94b2 upstream. - -Nathan Chancellor reports that the s390 vmlinux fails to link with -GNU ld < 2.36 since commit 99cb0d917ffa ("arch: fix broken BuildID -for arm64 and riscv"). - -It happens for defconfig, or more specifically for CONFIG_EXPOLINE=y. - - $ s390x-linux-gnu-ld --version | head -n1 - GNU ld (GNU Binutils for Debian) 2.35.2 - $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- allnoconfig - $ ./scripts/config -e CONFIG_EXPOLINE - $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- olddefconfig - $ make -s ARCH=s390 CROSS_COMPILE=s390x-linux-gnu- - `.exit.text' referenced in section `.s390_return_reg' of drivers/base/dd.o: defined in discarded section `.exit.text' of drivers/base/dd.o - make[1]: *** [scripts/Makefile.vmlinux:34: vmlinux] Error 1 - make: *** [Makefile:1252: vmlinux] Error 2 - -arch/s390/kernel/vmlinux.lds.S wants to keep EXIT_TEXT: - - .exit.text : { - EXIT_TEXT - } - -But, at the same time, EXIT_TEXT is thrown away by DISCARD because -s390 does not define RUNTIME_DISCARD_EXIT. - -I still do not understand why the latter wins after 99cb0d917ffa, -but defining RUNTIME_DISCARD_EXIT seems correct because the comment -line in arch/s390/kernel/vmlinux.lds.S says: - - /* - * .exit.text is discarded at runtime, not link time, - * to deal with references from __bug_table - */ - -Nathan also found that binutils commit 21401fc7bf67 ("Duplicate output -sections in scripts") cured this issue, so we cannot reproduce it with -binutils 2.36+, but it is better to not rely on it. - -Fixes: 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv") -Link: https://lore.kernel.org/all/Y7Jal56f6UBh1abE@dev-arch.thelio-3990X/ -Reported-by: Nathan Chancellor -Signed-off-by: Masahiro Yamada -Link: https://lore.kernel.org/r/20230105031306.1455409-1-masahiroy@kernel.org -Signed-off-by: Heiko Carstens -Signed-off-by: Greg Kroah-Hartman ---- - arch/s390/kernel/vmlinux.lds.S | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/arch/s390/kernel/vmlinux.lds.S -+++ b/arch/s390/kernel/vmlinux.lds.S -@@ -17,6 +17,8 @@ - /* Handle ro_after_init data on our own. */ - #define RO_AFTER_INIT_DATA - -+#define RUNTIME_DISCARD_EXIT -+ - #define EMITS_PT_NOTE - - #include diff --git a/queue-6.1/series b/queue-6.1/series index 569ad3d367d..e6db54d837e 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -157,7 +157,6 @@ panic-expose-warn_count-to-sysfs.patch docs-fix-path-paste-o-for-sys-kernel-warn_count.patch exit-use-read_once-for-all-oops-warn-limit-reads.patch x86-fpu-use-_alignof-to-avoid-undefined-behavior-in-type_align.patch -arch-fix-broken-buildid-for-arm64-and-riscv.patch drm-amdgpu-discovery-enable-soc21-common-for-gc-11.0.4.patch drm-amdgpu-discovery-enable-gmc-v11-for-gc-11.0.4.patch drm-amdgpu-discovery-enable-gfx-v11-for-gc-11.0.4.patch @@ -180,10 +179,6 @@ drm-amdgpu-enable-gfx-clock-gating-control-for-gc-ip-v11.0.4.patch drm-amdgpu-add-tmz-support-for-gc-11.0.1.patch drm-amdgpu-add-tmz-support-for-gc-ip-v11.0.4.patch drm-amdgpu-correct-mec-number-for-gfx11-apus.patch -s390-define-runtime_discard_exit-to-fix-link-error-with-gnu-ld-2.36.patch -powerpc-vmlinux.lds-define-runtime_discard_exit.patch -powerpc-vmlinux.lds-don-t-discard-.rela-for-relocatable-builds.patch -powerpc-vmlinux.lds-don-t-discard-.comment.patch octeontx2-pf-avoid-use-of-gfp_kernel-in-atomic-context.patch net-ulp-use-consistent-error-code-when-blocking-ulp.patch octeontx2-pf-fix-the-use-of-gfp_kernel-in-atomic-context-on-rt.patch