diff options
author | Fangrui Song <maskray@google.com> | 2020-11-03 02:23:58 +0100 |
---|---|---|
committer | Borislav Petkov <bp@suse.de> | 2020-11-04 12:30:20 +0100 |
commit | 4d6ffa27b8e5116c0abb318790fd01d4e12d75e6 (patch) | |
tree | 9b362f4f1dd5ea23b82b6a0a2a9ecac51360a4f3 /drivers/ipack | |
parent | Linux 5.10-rc2 (diff) | |
download | linux-4d6ffa27b8e5116c0abb318790fd01d4e12d75e6.tar.xz linux-4d6ffa27b8e5116c0abb318790fd01d4e12d75e6.zip |
x86/lib: Change .weak to SYM_FUNC_START_WEAK for arch/x86/lib/mem*_64.S
Commit
393f203f5fd5 ("x86_64: kasan: add interceptors for memset/memmove/memcpy functions")
added .weak directives to arch/x86/lib/mem*_64.S instead of changing the
existing ENTRY macros to WEAK. This can lead to the assembly snippet
.weak memcpy
...
.globl memcpy
which will produce a STB_WEAK memcpy with GNU as but STB_GLOBAL memcpy
with LLVM's integrated assembler before LLVM 12. LLVM 12 (since
https://reviews.llvm.org/D90108) will error on such an overridden symbol
binding.
Commit
ef1e03152cb0 ("x86/asm: Make some functions local")
changed ENTRY in arch/x86/lib/memcpy_64.S to SYM_FUNC_START_LOCAL, which
was ineffective due to the preceding .weak directive.
Use the appropriate SYM_FUNC_START_WEAK instead.
Fixes: 393f203f5fd5 ("x86_64: kasan: add interceptors for memset/memmove/memcpy functions")
Fixes: ef1e03152cb0 ("x86/asm: Make some functions local")
Reported-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Fangrui Song <maskray@google.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Tested-by: Nathan Chancellor <natechancellor@gmail.com>
Tested-by: Nick Desaulniers <ndesaulniers@google.com>
Cc: <stable@vger.kernel.org>
Link: https://lkml.kernel.org/r/20201103012358.168682-1-maskray@google.com
Diffstat (limited to 'drivers/ipack')
0 files changed, 0 insertions, 0 deletions