From 6e053400dbde17c80996cc4a5f3d271321504b7f Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 16 Aug 2021 10:56:12 +0200 Subject: [PATCH] 4.9-stable patches added patches: vmlinux.lds.h-handle-clang-s-module.-c-d-tor-sections.patch --- queue-4.9/series | 1 + ...dle-clang-s-module.-c-d-tor-sections.patch | 51 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 queue-4.9/vmlinux.lds.h-handle-clang-s-module.-c-d-tor-sections.patch diff --git a/queue-4.9/series b/queue-4.9/series index 3408283cfb5..6259c4b9a92 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -13,3 +13,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.9/vmlinux.lds.h-handle-clang-s-module.-c-d-tor-sections.patch b/queue-4.9/vmlinux.lds.h-handle-clang-s-module.-c-d-tor-sections.patch new file mode 100644 index 00000000000..505ca1e5786 --- /dev/null +++ b/queue-4.9/vmlinux.lds.h-handle-clang-s-module.-c-d-tor-sections.patch @@ -0,0 +1,51 @@ +From foo@baz Mon Aug 16 10:52:50 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: Fix conflicts due to lack of cf68fffb66d60 and 266ff2a8f51f0] +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 +@@ -465,6 +465,7 @@ + *(.text.unlikely .text.unlikely.*) \ + *(.text.unknown .text.unknown.*) \ + *(.ref.text) \ ++ *(.text.asan.* .text.tsan.*) \ + MEM_KEEP(init.text) \ + MEM_KEEP(exit.text) \ + -- 2.47.3