]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
7.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 May 2026 11:47:40 +0000 (13:47 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 1 May 2026 11:47:40 +0000 (13:47 +0200)
added patches:
module.lds-codetag-force-0-sh_addr-for-sections.patch
module.lds.s-fix-modules-on-32-bit-parisc-architecture.patch

queue-7.0/module.lds-codetag-force-0-sh_addr-for-sections.patch [new file with mode: 0644]
queue-7.0/module.lds.s-fix-modules-on-32-bit-parisc-architecture.patch [new file with mode: 0644]
queue-7.0/series

diff --git a/queue-7.0/module.lds-codetag-force-0-sh_addr-for-sections.patch b/queue-7.0/module.lds-codetag-force-0-sh_addr-for-sections.patch
new file mode 100644 (file)
index 0000000..73ca246
--- /dev/null
@@ -0,0 +1,85 @@
+From 4afc71bba8b7d7841681e7647ae02f5079aaf28f Mon Sep 17 00:00:00 2001
+From: Joe Lawrence <joe.lawrence@redhat.com>
+Date: Wed, 4 Mar 2026 20:52:37 -0500
+Subject: module.lds,codetag: force 0 sh_addr for sections
+
+From: Joe Lawrence <joe.lawrence@redhat.com>
+
+commit 4afc71bba8b7d7841681e7647ae02f5079aaf28f upstream.
+
+Commit 1ba9f8979426 ("vmlinux.lds: Unify TEXT_MAIN, DATA_MAIN, and
+related macros") added .text and made .data, .bss, and .rodata sections
+unconditional in the module linker script, but without an explicit
+address like the other sections in the same file.
+
+When linking modules with ld.bfd -r, sections defined without an address
+inherit the location counter, resulting in non-zero sh_addr values in
+the .ko.  Relocatable objects are expected to have sh_addr=0 for these
+sections and these non-zero addresses confuse elfutils and have been
+reported to cause segmentation faults in SystemTap [1].
+
+Add the 0 address specifier to all sections in module.lds, including the
+.codetag.* sections via MOD_SEPARATE_CODETAG_SECTIONS macro.
+
+Link: https://sourceware.org/bugzilla/show_bug.cgi?id=33958
+Fixes: 1ba9f8979426 ("vmlinux.lds: Unify TEXT_MAIN, DATA_MAIN, and related macros")
+Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
+Reviewed-by: Petr Pavlu <petr.pavlu@suse.com>
+Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
+Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ include/asm-generic/codetag.lds.h |    2 +-
+ scripts/module.lds.S              |   12 ++++++------
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+--- a/include/asm-generic/codetag.lds.h
++++ b/include/asm-generic/codetag.lds.h
+@@ -18,7 +18,7 @@
+       IF_MEM_ALLOC_PROFILING(SECTION_WITH_BOUNDARIES(alloc_tags))
+ #define MOD_SEPARATE_CODETAG_SECTION(_name)   \
+-      .codetag.##_name : {                    \
++      .codetag.##_name 0 : {                  \
+               SECTION_WITH_BOUNDARIES(_name)  \
+       }
+--- a/scripts/module.lds.S
++++ b/scripts/module.lds.S
+@@ -32,30 +32,30 @@ SECTIONS {
+       __jump_table            0 : ALIGN(8) { KEEP(*(__jump_table)) }
+       __ex_table              0 : ALIGN(4) { KEEP(*(__ex_table)) }
+-      __patchable_function_entries : { *(__patchable_function_entries) }
++      __patchable_function_entries 0 : { *(__patchable_function_entries) }
+       .init.klp_funcs         0 : ALIGN(8) { KEEP(*(.init.klp_funcs)) }
+       .init.klp_objects       0 : ALIGN(8) { KEEP(*(.init.klp_objects)) }
+ #ifdef CONFIG_ARCH_USES_CFI_TRAPS
+-      __kcfi_traps            : { KEEP(*(.kcfi_traps)) }
++      __kcfi_traps            0 : { KEEP(*(.kcfi_traps)) }
+ #endif
+-      .text : {
++      .text                   0 : {
+               *(.text .text.[0-9a-zA-Z_]*)
+       }
+-      .bss : {
++      .bss                    0 : {
+               *(.bss .bss.[0-9a-zA-Z_]*)
+               *(.bss..L*)
+       }
+-      .data : {
++      .data                   0 : {
+               *(.data .data.[0-9a-zA-Z_]*)
+               *(.data..L*)
+       }
+-      .rodata : {
++      .rodata                 0 : {
+               *(.rodata .rodata.[0-9a-zA-Z_]*)
+               *(.rodata..L*)
+       }
diff --git a/queue-7.0/module.lds.s-fix-modules-on-32-bit-parisc-architecture.patch b/queue-7.0/module.lds.s-fix-modules-on-32-bit-parisc-architecture.patch
new file mode 100644 (file)
index 0000000..ba7eab1
--- /dev/null
@@ -0,0 +1,76 @@
+From 1221365f55281349da4f4ba41c05b57cd15f5c28 Mon Sep 17 00:00:00 2001
+From: Helge Deller <deller@gmx.de>
+Date: Tue, 7 Apr 2026 22:07:22 +0200
+Subject: module.lds.S: Fix modules on 32-bit parisc architecture
+
+From: Helge Deller <deller@gmx.de>
+
+commit 1221365f55281349da4f4ba41c05b57cd15f5c28 upstream.
+
+On the 32-bit parisc architecture, we always used the
+-ffunction-sections compiler option to tell the compiler to put the
+functions into seperate text sections. This is necessary, otherwise
+"big" kernel modules like ext4 or ipv6 fail to load because some
+branches won't be able to reach their stubs.
+
+Commit 1ba9f8979426 ("vmlinux.lds: Unify TEXT_MAIN, DATA_MAIN, and related
+macros") broke this for parisc because all text sections will get
+unconditionally merged now.
+
+Introduce the ARCH_WANTS_MODULES_TEXT_SECTIONS config option which
+avoids the text section merge for modules, and fix this issue by
+enabling this option by default for 32-bit parisc.
+
+Fixes: 1ba9f8979426 ("vmlinux.lds: Unify TEXT_MAIN, DATA_MAIN, and related macros")
+Cc: Josh Poimboeuf <jpoimboe@kernel.org>
+Cc: stable@vger.kernel.org # v6.19+
+Suggested-by: Sami Tolvanen <samitolvanen@google.com>
+Reviewed-by: Petr Pavlu <petr.pavlu@suse.com>
+Signed-off-by: Helge Deller <deller@gmx.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/Kconfig         |    7 +++++++
+ arch/parisc/Kconfig  |    1 +
+ scripts/module.lds.S |    2 ++
+ 3 files changed, 10 insertions(+)
+
+--- a/arch/Kconfig
++++ b/arch/Kconfig
+@@ -1128,6 +1128,13 @@ config ARCH_WANTS_MODULES_DATA_IN_VMALLO
+         For architectures like powerpc/32 which have constraints on module
+         allocation and need to allocate module data outside of module area.
++config ARCH_WANTS_MODULES_TEXT_SECTIONS
++      bool
++      help
++        For architectures like 32-bit parisc which require that functions in
++        modules have to keep code in own text sections (-ffunction-sections)
++        and to avoid merging all text into one big text section,
++
+ config ARCH_WANTS_EXECMEM_LATE
+       bool
+       help
+--- a/arch/parisc/Kconfig
++++ b/arch/parisc/Kconfig
+@@ -8,6 +8,7 @@ config PARISC
+       select HAVE_FUNCTION_GRAPH_TRACER
+       select HAVE_SYSCALL_TRACEPOINTS
+       select ARCH_WANT_FRAME_POINTERS
++      select ARCH_WANTS_MODULES_TEXT_SECTIONS if !64BIT
+       select ARCH_HAS_CPU_CACHE_ALIASING
+       select ARCH_HAS_DMA_ALLOC if PA11
+       select ARCH_HAS_DMA_OPS
+--- a/scripts/module.lds.S
++++ b/scripts/module.lds.S
+@@ -41,9 +41,11 @@ SECTIONS {
+       __kcfi_traps            0 : { KEEP(*(.kcfi_traps)) }
+ #endif
++#ifndef CONFIG_ARCH_WANTS_MODULES_TEXT_SECTIONS
+       .text                   0 : {
+               *(.text .text.[0-9a-zA-Z_]*)
+       }
++#endif
+       .bss                    0 : {
+               *(.bss .bss.[0-9a-zA-Z_]*)
index bbf6748899e033432a0c5c08f44bdd455a7a74a1..008f9305af5aa725171ca8b84ec67dd68f13bf96 100644 (file)
@@ -113,3 +113,5 @@ io_uring-register-fix-ring-resizing-with-mixed-large-sqes-cqes.patch
 io_uring-zcrx-fix-user_struct-uaf.patch
 io_uring-poll-fix-signed-comparison-in-io_poll_get_ownership.patch
 io_uring-poll-ensure-epoll_oneshot-is-propagated-for-epoll_uring_wake.patch
+module.lds-codetag-force-0-sh_addr-for-sections.patch
+module.lds.s-fix-modules-on-32-bit-parisc-architecture.patch