x86: clean up symbol aliasing
Now that we have SYM_FUNC_ALIAS() and SYM_FUNC_ALIAS_WEAK(), use those to simplify the definition of function aliases across arch/x86. For clarity, where there are multiple annotations such as EXPORT_SYMBOL(), I've tried to keep annotations grouped by symbol. For example, where a function has a name and an alias which are both exported, this is organised as: SYM_FUNC_START(func) ... asm insns ... SYM_FUNC_END(func) EXPORT_SYMBOL(func) SYM_FUNC_ALIAS(alias, func) EXPORT_SYMBOL(alias) Where there are only aliases and no exports or other annotations, I have not bothered with line spacing, e.g. SYM_FUNC_START(func) ... asm insns ... SYM_FUNC_END(func) SYM_FUNC_ALIAS(alias, func) The tools/perf/ copies of memset_64.S and memset_64.S are updated likewise to avoid the build system complaining these are mismatched: | Warning: Kernel ABI header at 'tools/arch/x86/lib/memcpy_64.S' differs from latest version at 'arch/x86/lib/memcpy_64.S' | diff -u tools/arch/x86/lib/memcpy_64.S arch/x86/lib/memcpy_64.S | Warning: Kernel ABI header at 'tools/arch/x86/lib/memset_64.S' differs from latest version at 'arch/x86/lib/memset_64.S' | diff -u tools/arch/x86/lib/memset_64.S arch/x86/lib/memset_64.S There should be no functional change as a result of this patch. Signed-off-by: Mark Rutland <mark.rutland@arm.com> Acked-by: Ard Biesheuvel <ardb@kernel.org> Acked-by: Josh Poimboeuf <jpoimboe@redhat.com> Acked-by: Mark Brown <broonie@kernel.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jiri Slaby <jslaby@suse.cz> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lore.kernel.org/r/20220216162229.1076788-4-mark.rutland@arm.com Signed-off-by: Will Deacon <will@kernel.org>
This commit is contained in:
parent
0f61f6be1f
commit
7be2e31964
|
@ -152,14 +152,13 @@ SYM_FUNC_END(startup_32)
|
|||
|
||||
#ifdef CONFIG_EFI_STUB
|
||||
SYM_FUNC_START(efi32_stub_entry)
|
||||
SYM_FUNC_START_ALIAS(efi_stub_entry)
|
||||
add $0x4, %esp
|
||||
movl 8(%esp), %esi /* save boot_params pointer */
|
||||
call efi_main
|
||||
/* efi_main returns the possibly relocated address of startup_32 */
|
||||
jmp *%eax
|
||||
SYM_FUNC_END(efi32_stub_entry)
|
||||
SYM_FUNC_END_ALIAS(efi_stub_entry)
|
||||
SYM_FUNC_ALIAS(efi_stub_entry, efi32_stub_entry)
|
||||
#endif
|
||||
|
||||
.text
|
||||
|
|
|
@ -535,7 +535,6 @@ SYM_CODE_END(startup_64)
|
|||
#ifdef CONFIG_EFI_STUB
|
||||
.org 0x390
|
||||
SYM_FUNC_START(efi64_stub_entry)
|
||||
SYM_FUNC_START_ALIAS(efi_stub_entry)
|
||||
and $~0xf, %rsp /* realign the stack */
|
||||
movq %rdx, %rbx /* save boot_params pointer */
|
||||
call efi_main
|
||||
|
@ -543,7 +542,7 @@ SYM_FUNC_START_ALIAS(efi_stub_entry)
|
|||
leaq rva(startup_64)(%rax), %rax
|
||||
jmp *%rax
|
||||
SYM_FUNC_END(efi64_stub_entry)
|
||||
SYM_FUNC_END_ALIAS(efi_stub_entry)
|
||||
SYM_FUNC_ALIAS(efi_stub_entry, efi64_stub_entry)
|
||||
#endif
|
||||
|
||||
.text
|
||||
|
|
|
@ -1751,8 +1751,6 @@ SYM_FUNC_END(aesni_gcm_finalize)
|
|||
|
||||
#endif
|
||||
|
||||
|
||||
SYM_FUNC_START_LOCAL_ALIAS(_key_expansion_128)
|
||||
SYM_FUNC_START_LOCAL(_key_expansion_256a)
|
||||
pshufd $0b11111111, %xmm1, %xmm1
|
||||
shufps $0b00010000, %xmm0, %xmm4
|
||||
|
@ -1764,7 +1762,7 @@ SYM_FUNC_START_LOCAL(_key_expansion_256a)
|
|||
add $0x10, TKEYP
|
||||
RET
|
||||
SYM_FUNC_END(_key_expansion_256a)
|
||||
SYM_FUNC_END_ALIAS(_key_expansion_128)
|
||||
SYM_FUNC_ALIAS_LOCAL(_key_expansion_128, _key_expansion_256a)
|
||||
|
||||
SYM_FUNC_START_LOCAL(_key_expansion_192a)
|
||||
pshufd $0b01010101, %xmm1, %xmm1
|
||||
|
|
|
@ -27,8 +27,7 @@
|
|||
* Output:
|
||||
* rax original destination
|
||||
*/
|
||||
SYM_FUNC_START_ALIAS(__memcpy)
|
||||
SYM_FUNC_START_WEAK(memcpy)
|
||||
SYM_FUNC_START(__memcpy)
|
||||
ALTERNATIVE_2 "jmp memcpy_orig", "", X86_FEATURE_REP_GOOD, \
|
||||
"jmp memcpy_erms", X86_FEATURE_ERMS
|
||||
|
||||
|
@ -40,11 +39,12 @@ SYM_FUNC_START_WEAK(memcpy)
|
|||
movl %edx, %ecx
|
||||
rep movsb
|
||||
RET
|
||||
SYM_FUNC_END(memcpy)
|
||||
SYM_FUNC_END_ALIAS(__memcpy)
|
||||
EXPORT_SYMBOL(memcpy)
|
||||
SYM_FUNC_END(__memcpy)
|
||||
EXPORT_SYMBOL(__memcpy)
|
||||
|
||||
SYM_FUNC_ALIAS_WEAK(memcpy, __memcpy)
|
||||
EXPORT_SYMBOL(memcpy)
|
||||
|
||||
/*
|
||||
* memcpy_erms() - enhanced fast string memcpy. This is faster and
|
||||
* simpler than memcpy. Use memcpy_erms when possible.
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
* Output:
|
||||
* rax: dest
|
||||
*/
|
||||
SYM_FUNC_START_WEAK(memmove)
|
||||
SYM_FUNC_START(__memmove)
|
||||
|
||||
mov %rdi, %rax
|
||||
|
@ -207,6 +206,7 @@ SYM_FUNC_START(__memmove)
|
|||
13:
|
||||
RET
|
||||
SYM_FUNC_END(__memmove)
|
||||
SYM_FUNC_END_ALIAS(memmove)
|
||||
EXPORT_SYMBOL(__memmove)
|
||||
|
||||
SYM_FUNC_ALIAS_WEAK(memmove, __memmove)
|
||||
EXPORT_SYMBOL(memmove)
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
*
|
||||
* rax original destination
|
||||
*/
|
||||
SYM_FUNC_START_WEAK(memset)
|
||||
SYM_FUNC_START(__memset)
|
||||
/*
|
||||
* Some CPUs support enhanced REP MOVSB/STOSB feature. It is recommended
|
||||
|
@ -42,10 +41,11 @@ SYM_FUNC_START(__memset)
|
|||
movq %r9,%rax
|
||||
RET
|
||||
SYM_FUNC_END(__memset)
|
||||
SYM_FUNC_END_ALIAS(memset)
|
||||
EXPORT_SYMBOL(memset)
|
||||
EXPORT_SYMBOL(__memset)
|
||||
|
||||
SYM_FUNC_ALIAS_WEAK(memset, __memset)
|
||||
EXPORT_SYMBOL(memset)
|
||||
|
||||
/*
|
||||
* ISO C memset - set a memory block to a byte value. This function uses
|
||||
* enhanced rep stosb to override the fast string function.
|
||||
|
|
|
@ -27,8 +27,7 @@
|
|||
* Output:
|
||||
* rax original destination
|
||||
*/
|
||||
SYM_FUNC_START_ALIAS(__memcpy)
|
||||
SYM_FUNC_START_WEAK(memcpy)
|
||||
SYM_FUNC_START(__memcpy)
|
||||
ALTERNATIVE_2 "jmp memcpy_orig", "", X86_FEATURE_REP_GOOD, \
|
||||
"jmp memcpy_erms", X86_FEATURE_ERMS
|
||||
|
||||
|
@ -40,11 +39,12 @@ SYM_FUNC_START_WEAK(memcpy)
|
|||
movl %edx, %ecx
|
||||
rep movsb
|
||||
RET
|
||||
SYM_FUNC_END(memcpy)
|
||||
SYM_FUNC_END_ALIAS(__memcpy)
|
||||
EXPORT_SYMBOL(memcpy)
|
||||
SYM_FUNC_END(__memcpy)
|
||||
EXPORT_SYMBOL(__memcpy)
|
||||
|
||||
SYM_FUNC_ALIAS_WEAK(memcpy, __memcpy)
|
||||
EXPORT_SYMBOL(memcpy)
|
||||
|
||||
/*
|
||||
* memcpy_erms() - enhanced fast string memcpy. This is faster and
|
||||
* simpler than memcpy. Use memcpy_erms when possible.
|
||||
|
|
|
@ -17,7 +17,6 @@
|
|||
*
|
||||
* rax original destination
|
||||
*/
|
||||
SYM_FUNC_START_WEAK(memset)
|
||||
SYM_FUNC_START(__memset)
|
||||
/*
|
||||
* Some CPUs support enhanced REP MOVSB/STOSB feature. It is recommended
|
||||
|
@ -42,10 +41,11 @@ SYM_FUNC_START(__memset)
|
|||
movq %r9,%rax
|
||||
RET
|
||||
SYM_FUNC_END(__memset)
|
||||
SYM_FUNC_END_ALIAS(memset)
|
||||
EXPORT_SYMBOL(memset)
|
||||
EXPORT_SYMBOL(__memset)
|
||||
|
||||
SYM_FUNC_ALIAS_WEAK(memset, __memset)
|
||||
EXPORT_SYMBOL(memset)
|
||||
|
||||
/*
|
||||
* ISO C memset - set a memory block to a byte value. This function uses
|
||||
* enhanced rep stosb to override the fast string function.
|
||||
|
|
Loading…
Reference in New Issue