From: Greg Kroah-Hartman Date: Mon, 16 Aug 2021 08:56:45 +0000 (+0200) Subject: 4.19-stable patches X-Git-Tag: v5.4.142~21 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b7c1cb76fe8cb70c39ed85bec0ef1f472e65bcd1;p=thirdparty%2Fkernel%2Fstable-queue.git 4.19-stable patches added patches: vmlinux.lds.h-handle-clang-s-module.-c-d-tor-sections.patch --- diff --git a/queue-4.19/series b/queue-4.19/series index e2895ae9924..85113da2e33 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -33,3 +33,4 @@ pci-msi-do-not-set-invalid-bits-in-msi-mask.patch pci-msi-correct-misleading-comments.patch pci-msi-use-msi_mask_irq-in-pci_msi_shutdown.patch pci-msi-protect-msi_desc-masked-for-multi-msi.patch +vmlinux.lds.h-handle-clang-s-module.-c-d-tor-sections.patch diff --git a/queue-4.19/vmlinux.lds.h-handle-clang-s-module.-c-d-tor-sections.patch b/queue-4.19/vmlinux.lds.h-handle-clang-s-module.-c-d-tor-sections.patch new file mode 100644 index 00000000000..5bd244f6b8c --- /dev/null +++ b/queue-4.19/vmlinux.lds.h-handle-clang-s-module.-c-d-tor-sections.patch @@ -0,0 +1,51 @@ +From foo@baz Mon Aug 16 10:53:05 AM CEST 2021 +From: Nathan Chancellor +Date: Fri, 30 Jul 2021 19:31:08 -0700 +Subject: vmlinux.lds.h: Handle clang's module.{c,d}tor sections + +From: Nathan Chancellor + +commit 848378812e40152abe9b9baf58ce2004f76fb988 upstream. + +A recent change in LLVM causes module_{c,d}tor sections to appear when +CONFIG_K{A,C}SAN are enabled, which results in orphan section warnings +because these are not handled anywhere: + +ld.lld: warning: arch/x86/pci/built-in.a(legacy.o):(.text.asan.module_ctor) is being placed in '.text.asan.module_ctor' +ld.lld: warning: arch/x86/pci/built-in.a(legacy.o):(.text.asan.module_dtor) is being placed in '.text.asan.module_dtor' +ld.lld: warning: arch/x86/pci/built-in.a(legacy.o):(.text.tsan.module_ctor) is being placed in '.text.tsan.module_ctor' + +Fangrui explains: "the function asan.module_ctor has the SHF_GNU_RETAIN +flag, so it is in a separate section even with -fno-function-sections +(default)". + +Place them in the TEXT_TEXT section so that these technologies continue +to work with the newer compiler versions. All of the KASAN and KCSAN +KUnit tests continue to pass after this change. + +Cc: stable@vger.kernel.org +Link: https://github.com/ClangBuiltLinux/linux/issues/1432 +Link: https://github.com/llvm/llvm-project/commit/7b789562244ee941b7bf2cefeb3fc08a59a01865 +Signed-off-by: Nathan Chancellor +Reviewed-by: Nick Desaulniers +Reviewed-by: Fangrui Song +Acked-by: Marco Elver +Signed-off-by: Kees Cook +Link: https://lore.kernel.org/r/20210731023107.1932981-1-nathan@kernel.org +[nc: Resolve conflict due to lack of cf68fffb66d60] +Signed-off-by: Nathan Chancellor +Signed-off-by: Greg Kroah-Hartman +--- + include/asm-generic/vmlinux.lds.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/include/asm-generic/vmlinux.lds.h ++++ b/include/asm-generic/vmlinux.lds.h +@@ -508,6 +508,7 @@ + NOINSTR_TEXT \ + *(.text..refcount) \ + *(.ref.text) \ ++ *(.text.asan.* .text.tsan.*) \ + MEM_KEEP(init.text*) \ + MEM_KEEP(exit.text*) \ +