From: Greg Kroah-Hartman Date: Fri, 27 Jan 2023 07:29:50 +0000 (+0100) Subject: drop some 5.4 "build fix" patches X-Git-Tag: v5.10.166~69 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f0c3d915f3dfe4b9ce385f2b9a212d50dd0908c0;p=thirdparty%2Fkernel%2Fstable-queue.git drop some 5.4 "build fix" patches --- 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 86508816ecc..00000000000 --- a/queue-5.4/arch-fix-broken-buildid-for-arm64-and-riscv.patch +++ /dev/null @@ -1,61 +0,0 @@ -From b30c541a149ea2e6e40101c5615738951202cfec Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 24 Jan 2023 14:14:19 -0700 -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: Tom Saeger -Signed-off-by: Sasha Levin ---- - include/asm-generic/vmlinux.lds.h | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h -index 2d45d98773e2..a68535f36d13 100644 ---- 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.*)) \ --- -2.39.0 - 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 751f5b6fe01..00000000000 --- a/queue-5.4/powerpc-vmlinux.lds-define-runtime_discard_exit.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 9943f3ecf056c7f39297f35e702e91a54c5fe9b4 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 24 Jan 2023 14:14:20 -0700 -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: Tom Saeger -Signed-off-by: Sasha Levin ---- - arch/powerpc/kernel/vmlinux.lds.S | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S -index 3ea360cad337..4d5e1662a0ba 100644 ---- 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 --- -2.39.0 - diff --git a/queue-5.4/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocata.patch b/queue-5.4/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocata.patch deleted file mode 100644 index 6015123c61d..00000000000 --- a/queue-5.4/powerpc-vmlinux.lds-don-t-discard-.rela-for-relocata.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 5b4a7c35df5825ef9383bd378172a24a199cb61b Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 24 Jan 2023 14:14:21 -0700 -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: Tom Saeger -Signed-off-by: Sasha Levin ---- - arch/powerpc/kernel/vmlinux.lds.S | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/arch/powerpc/kernel/vmlinux.lds.S b/arch/powerpc/kernel/vmlinux.lds.S -index 4d5e1662a0ba..46dfb3701c6e 100644 ---- 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 - } - } --- -2.39.0 - diff --git a/queue-5.4/s390-define-runtime_discard_exit-to-fix-link-error-w.patch b/queue-5.4/s390-define-runtime_discard_exit-to-fix-link-error-w.patch deleted file mode 100644 index e0cfa34918e..00000000000 --- a/queue-5.4/s390-define-runtime_discard_exit-to-fix-link-error-w.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 9ba5c19fec2f2639d8538a7889e3e5bc00003389 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 24 Jan 2023 14:14:22 -0700 -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: Tom Saeger -Signed-off-by: Sasha Levin ---- - arch/s390/kernel/vmlinux.lds.S | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S -index 4df41695caec..a471bd480397 100644 ---- 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 - --- -2.39.0 - diff --git a/queue-5.4/series b/queue-5.4/series index 84decce63c5..16b2ba9da10 100644 --- a/queue-5.4/series +++ b/queue-5.4/series @@ -71,11 +71,5 @@ mmc-sdhci-esdhc-imx-correct-the-tuning-start-tap-and.patch revert-selftests-bpf-check-null-propagation-only-nei.patch netfilter-conntrack-do-not-renew-entry-stuck-in-tcp-.patch fs-reiserfs-remove-useless-new_opts-in-reiserfs_remount.patch -x86-vmlinux.lds-add-runtime_discard_exit-to-generic-.patch -arch-fix-broken-buildid-for-arm64-and-riscv.patch -powerpc-vmlinux.lds-define-runtime_discard_exit.patch -powerpc-vmlinux.lds-don-t-discard-.rela-for-relocata.patch -s390-define-runtime_discard_exit-to-fix-link-error-w.patch -sh-define-runtime_discard_exit.patch revert-revert-xhci-set-hcd-flag-to-defer-primary-roo.patch bluetooth-hci_sync-cancel-cmd_timer-if-hci_open-fail.patch diff --git a/queue-5.4/sh-define-runtime_discard_exit.patch b/queue-5.4/sh-define-runtime_discard_exit.patch deleted file mode 100644 index 546e06c2d19..00000000000 --- a/queue-5.4/sh-define-runtime_discard_exit.patch +++ /dev/null @@ -1,72 +0,0 @@ -From f4cdd0fccd2723a36ff28dbb7f76867a5d751d25 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 24 Jan 2023 14:14:23 -0700 -Subject: sh: define RUNTIME_DISCARD_EXIT - -From: Tom Saeger - -sh vmlinux fails to link with GNU ld < 2.40 (likely < 2.36) since -commit 99cb0d917ffa ("arch: fix broken BuildID for arm64 and riscv"). - -This is similar to fixes for powerpc and s390: -commit 4b9880dbf3bd ("powerpc/vmlinux.lds: Define RUNTIME_DISCARD_EXIT"). -commit a494398bde27 ("s390: define RUNTIME_DISCARD_EXIT to fix link error -with GNU ld < 2.36"). - - $ sh4-linux-gnu-ld --version | head -n1 - GNU ld (GNU Binutils for Debian) 2.35.2 - - $ make ARCH=sh CROSS_COMPILE=sh4-linux-gnu- microdev_defconfig - $ make ARCH=sh CROSS_COMPILE=sh4-linux-gnu- - - `.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 `__bug_table' of - drivers/char/hw_random/core.o: defined in discarded section - `.exit.text' of drivers/char/hw_random/core.o - make[2]: *** [scripts/Makefile.vmlinux:34: vmlinux] Error 1 - make[1]: *** [Makefile:1252: vmlinux] Error 2 - -arch/sh/kernel/vmlinux.lds.S keeps EXIT_TEXT: - - /* - * .exit.text is discarded at runtime, not link time, to deal with - * references from __bug_table - */ - .exit.text : AT(ADDR(.exit.text)) { EXIT_TEXT } - -However, EXIT_TEXT is thrown away by -DISCARD(include/asm-generic/vmlinux.lds.h) because -sh does not define RUNTIME_DISCARD_EXIT. - -GNU ld 2.40 does not have this issue and builds fine. -This corresponds with Masahiro's comments in a494398bde27: -"Nathan [Chancellor] 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/ -Link: https://lore.kernel.org/all/20230123194218.47ssfzhrpnv3xfez@oracle.com/ -Signed-off-by: Tom Saeger -Signed-off-by: Sasha Levin ---- - arch/sh/kernel/vmlinux.lds.S | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arch/sh/kernel/vmlinux.lds.S b/arch/sh/kernel/vmlinux.lds.S -index 77a59d8c6b4d..ec3bae172b20 100644 ---- a/arch/sh/kernel/vmlinux.lds.S -+++ b/arch/sh/kernel/vmlinux.lds.S -@@ -10,6 +10,7 @@ OUTPUT_ARCH(sh:sh5) - #define LOAD_OFFSET 0 - OUTPUT_ARCH(sh) - #endif -+#define RUNTIME_DISCARD_EXIT - - #include - #include --- -2.39.0 - diff --git a/queue-5.4/x86-vmlinux.lds-add-runtime_discard_exit-to-generic-.patch b/queue-5.4/x86-vmlinux.lds-add-runtime_discard_exit-to-generic-.patch deleted file mode 100644 index 2f96b72dd39..00000000000 --- a/queue-5.4/x86-vmlinux.lds-add-runtime_discard_exit-to-generic-.patch +++ /dev/null @@ -1,70 +0,0 @@ -From c278befb01681aafe2e59159bec29516fa681dea Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 24 Jan 2023 14:14:18 -0700 -Subject: x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS - -From: H.J. Lu - -commit 84d5f77fc2ee4e010c2c037750e32f06e55224b0 upstream. - -In the x86 kernel, .exit.text and .exit.data sections are discarded at -runtime, not by the linker. Add RUNTIME_DISCARD_EXIT to generic DISCARDS -and define it in the x86 kernel linker script to keep them. - -The sections are added before the DISCARD directive so document here -only the situation explicitly as this change doesn't have any effect on -the generated kernel. Also, other architectures like ARM64 will use it -too so generalize the approach with the RUNTIME_DISCARD_EXIT define. - - [ bp: Massage and extend commit message. ] - -Signed-off-by: H.J. Lu -Signed-off-by: Borislav Petkov -Reviewed-by: Kees Cook -Link: https://lkml.kernel.org/r/20200326193021.255002-1-hjl.tools@gmail.com -Signed-off-by: Tom Saeger -Signed-off-by: Sasha Levin ---- - arch/x86/kernel/vmlinux.lds.S | 1 + - include/asm-generic/vmlinux.lds.h | 11 +++++++++-- - 2 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S -index 1afe211d7a7c..0ae3cd9a25ea 100644 ---- a/arch/x86/kernel/vmlinux.lds.S -+++ b/arch/x86/kernel/vmlinux.lds.S -@@ -21,6 +21,7 @@ - #define LOAD_OFFSET __START_KERNEL_map - #endif - -+#define RUNTIME_DISCARD_EXIT - #include - #include - #include -diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h -index c3bcac22c389..2d45d98773e2 100644 ---- a/include/asm-generic/vmlinux.lds.h -+++ b/include/asm-generic/vmlinux.lds.h -@@ -900,10 +900,17 @@ - * section definitions so that such archs put those in earlier section - * definitions. - */ -+#ifdef RUNTIME_DISCARD_EXIT -+#define EXIT_DISCARDS -+#else -+#define EXIT_DISCARDS \ -+ EXIT_TEXT \ -+ EXIT_DATA -+#endif -+ - #define DISCARDS \ - /DISCARD/ : { \ -- EXIT_TEXT \ -- EXIT_DATA \ -+ EXIT_DISCARDS \ - EXIT_CALL \ - *(.discard) \ - *(.discard.*) \ --- -2.39.0 -