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:
Родитель
0f61f6be1f
Коммит
7be2e31964
|
@ -152,14 +152,13 @@ SYM_FUNC_END(startup_32)
|
||||||
|
|
||||||
#ifdef CONFIG_EFI_STUB
|
#ifdef CONFIG_EFI_STUB
|
||||||
SYM_FUNC_START(efi32_stub_entry)
|
SYM_FUNC_START(efi32_stub_entry)
|
||||||
SYM_FUNC_START_ALIAS(efi_stub_entry)
|
|
||||||
add $0x4, %esp
|
add $0x4, %esp
|
||||||
movl 8(%esp), %esi /* save boot_params pointer */
|
movl 8(%esp), %esi /* save boot_params pointer */
|
||||||
call efi_main
|
call efi_main
|
||||||
/* efi_main returns the possibly relocated address of startup_32 */
|
/* efi_main returns the possibly relocated address of startup_32 */
|
||||||
jmp *%eax
|
jmp *%eax
|
||||||
SYM_FUNC_END(efi32_stub_entry)
|
SYM_FUNC_END(efi32_stub_entry)
|
||||||
SYM_FUNC_END_ALIAS(efi_stub_entry)
|
SYM_FUNC_ALIAS(efi_stub_entry, efi32_stub_entry)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
|
@ -535,7 +535,6 @@ SYM_CODE_END(startup_64)
|
||||||
#ifdef CONFIG_EFI_STUB
|
#ifdef CONFIG_EFI_STUB
|
||||||
.org 0x390
|
.org 0x390
|
||||||
SYM_FUNC_START(efi64_stub_entry)
|
SYM_FUNC_START(efi64_stub_entry)
|
||||||
SYM_FUNC_START_ALIAS(efi_stub_entry)
|
|
||||||
and $~0xf, %rsp /* realign the stack */
|
and $~0xf, %rsp /* realign the stack */
|
||||||
movq %rdx, %rbx /* save boot_params pointer */
|
movq %rdx, %rbx /* save boot_params pointer */
|
||||||
call efi_main
|
call efi_main
|
||||||
|
@ -543,7 +542,7 @@ SYM_FUNC_START_ALIAS(efi_stub_entry)
|
||||||
leaq rva(startup_64)(%rax), %rax
|
leaq rva(startup_64)(%rax), %rax
|
||||||
jmp *%rax
|
jmp *%rax
|
||||||
SYM_FUNC_END(efi64_stub_entry)
|
SYM_FUNC_END(efi64_stub_entry)
|
||||||
SYM_FUNC_END_ALIAS(efi_stub_entry)
|
SYM_FUNC_ALIAS(efi_stub_entry, efi64_stub_entry)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
|
|
@ -1751,8 +1751,6 @@ SYM_FUNC_END(aesni_gcm_finalize)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
SYM_FUNC_START_LOCAL_ALIAS(_key_expansion_128)
|
|
||||||
SYM_FUNC_START_LOCAL(_key_expansion_256a)
|
SYM_FUNC_START_LOCAL(_key_expansion_256a)
|
||||||
pshufd $0b11111111, %xmm1, %xmm1
|
pshufd $0b11111111, %xmm1, %xmm1
|
||||||
shufps $0b00010000, %xmm0, %xmm4
|
shufps $0b00010000, %xmm0, %xmm4
|
||||||
|
@ -1764,7 +1762,7 @@ SYM_FUNC_START_LOCAL(_key_expansion_256a)
|
||||||
add $0x10, TKEYP
|
add $0x10, TKEYP
|
||||||
RET
|
RET
|
||||||
SYM_FUNC_END(_key_expansion_256a)
|
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)
|
SYM_FUNC_START_LOCAL(_key_expansion_192a)
|
||||||
pshufd $0b01010101, %xmm1, %xmm1
|
pshufd $0b01010101, %xmm1, %xmm1
|
||||||
|
|
|
@ -27,8 +27,7 @@
|
||||||
* Output:
|
* Output:
|
||||||
* rax original destination
|
* rax original destination
|
||||||
*/
|
*/
|
||||||
SYM_FUNC_START_ALIAS(__memcpy)
|
SYM_FUNC_START(__memcpy)
|
||||||
SYM_FUNC_START_WEAK(memcpy)
|
|
||||||
ALTERNATIVE_2 "jmp memcpy_orig", "", X86_FEATURE_REP_GOOD, \
|
ALTERNATIVE_2 "jmp memcpy_orig", "", X86_FEATURE_REP_GOOD, \
|
||||||
"jmp memcpy_erms", X86_FEATURE_ERMS
|
"jmp memcpy_erms", X86_FEATURE_ERMS
|
||||||
|
|
||||||
|
@ -40,11 +39,12 @@ SYM_FUNC_START_WEAK(memcpy)
|
||||||
movl %edx, %ecx
|
movl %edx, %ecx
|
||||||
rep movsb
|
rep movsb
|
||||||
RET
|
RET
|
||||||
SYM_FUNC_END(memcpy)
|
SYM_FUNC_END(__memcpy)
|
||||||
SYM_FUNC_END_ALIAS(__memcpy)
|
|
||||||
EXPORT_SYMBOL(memcpy)
|
|
||||||
EXPORT_SYMBOL(__memcpy)
|
EXPORT_SYMBOL(__memcpy)
|
||||||
|
|
||||||
|
SYM_FUNC_ALIAS_WEAK(memcpy, __memcpy)
|
||||||
|
EXPORT_SYMBOL(memcpy)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* memcpy_erms() - enhanced fast string memcpy. This is faster and
|
* memcpy_erms() - enhanced fast string memcpy. This is faster and
|
||||||
* simpler than memcpy. Use memcpy_erms when possible.
|
* simpler than memcpy. Use memcpy_erms when possible.
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
* Output:
|
* Output:
|
||||||
* rax: dest
|
* rax: dest
|
||||||
*/
|
*/
|
||||||
SYM_FUNC_START_WEAK(memmove)
|
|
||||||
SYM_FUNC_START(__memmove)
|
SYM_FUNC_START(__memmove)
|
||||||
|
|
||||||
mov %rdi, %rax
|
mov %rdi, %rax
|
||||||
|
@ -207,6 +206,7 @@ SYM_FUNC_START(__memmove)
|
||||||
13:
|
13:
|
||||||
RET
|
RET
|
||||||
SYM_FUNC_END(__memmove)
|
SYM_FUNC_END(__memmove)
|
||||||
SYM_FUNC_END_ALIAS(memmove)
|
|
||||||
EXPORT_SYMBOL(__memmove)
|
EXPORT_SYMBOL(__memmove)
|
||||||
|
|
||||||
|
SYM_FUNC_ALIAS_WEAK(memmove, __memmove)
|
||||||
EXPORT_SYMBOL(memmove)
|
EXPORT_SYMBOL(memmove)
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
*
|
*
|
||||||
* rax original destination
|
* rax original destination
|
||||||
*/
|
*/
|
||||||
SYM_FUNC_START_WEAK(memset)
|
|
||||||
SYM_FUNC_START(__memset)
|
SYM_FUNC_START(__memset)
|
||||||
/*
|
/*
|
||||||
* Some CPUs support enhanced REP MOVSB/STOSB feature. It is recommended
|
* Some CPUs support enhanced REP MOVSB/STOSB feature. It is recommended
|
||||||
|
@ -42,10 +41,11 @@ SYM_FUNC_START(__memset)
|
||||||
movq %r9,%rax
|
movq %r9,%rax
|
||||||
RET
|
RET
|
||||||
SYM_FUNC_END(__memset)
|
SYM_FUNC_END(__memset)
|
||||||
SYM_FUNC_END_ALIAS(memset)
|
|
||||||
EXPORT_SYMBOL(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
|
* ISO C memset - set a memory block to a byte value. This function uses
|
||||||
* enhanced rep stosb to override the fast string function.
|
* enhanced rep stosb to override the fast string function.
|
||||||
|
|
|
@ -27,8 +27,7 @@
|
||||||
* Output:
|
* Output:
|
||||||
* rax original destination
|
* rax original destination
|
||||||
*/
|
*/
|
||||||
SYM_FUNC_START_ALIAS(__memcpy)
|
SYM_FUNC_START(__memcpy)
|
||||||
SYM_FUNC_START_WEAK(memcpy)
|
|
||||||
ALTERNATIVE_2 "jmp memcpy_orig", "", X86_FEATURE_REP_GOOD, \
|
ALTERNATIVE_2 "jmp memcpy_orig", "", X86_FEATURE_REP_GOOD, \
|
||||||
"jmp memcpy_erms", X86_FEATURE_ERMS
|
"jmp memcpy_erms", X86_FEATURE_ERMS
|
||||||
|
|
||||||
|
@ -40,11 +39,12 @@ SYM_FUNC_START_WEAK(memcpy)
|
||||||
movl %edx, %ecx
|
movl %edx, %ecx
|
||||||
rep movsb
|
rep movsb
|
||||||
RET
|
RET
|
||||||
SYM_FUNC_END(memcpy)
|
SYM_FUNC_END(__memcpy)
|
||||||
SYM_FUNC_END_ALIAS(__memcpy)
|
|
||||||
EXPORT_SYMBOL(memcpy)
|
|
||||||
EXPORT_SYMBOL(__memcpy)
|
EXPORT_SYMBOL(__memcpy)
|
||||||
|
|
||||||
|
SYM_FUNC_ALIAS_WEAK(memcpy, __memcpy)
|
||||||
|
EXPORT_SYMBOL(memcpy)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* memcpy_erms() - enhanced fast string memcpy. This is faster and
|
* memcpy_erms() - enhanced fast string memcpy. This is faster and
|
||||||
* simpler than memcpy. Use memcpy_erms when possible.
|
* simpler than memcpy. Use memcpy_erms when possible.
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
*
|
*
|
||||||
* rax original destination
|
* rax original destination
|
||||||
*/
|
*/
|
||||||
SYM_FUNC_START_WEAK(memset)
|
|
||||||
SYM_FUNC_START(__memset)
|
SYM_FUNC_START(__memset)
|
||||||
/*
|
/*
|
||||||
* Some CPUs support enhanced REP MOVSB/STOSB feature. It is recommended
|
* Some CPUs support enhanced REP MOVSB/STOSB feature. It is recommended
|
||||||
|
@ -42,10 +41,11 @@ SYM_FUNC_START(__memset)
|
||||||
movq %r9,%rax
|
movq %r9,%rax
|
||||||
RET
|
RET
|
||||||
SYM_FUNC_END(__memset)
|
SYM_FUNC_END(__memset)
|
||||||
SYM_FUNC_END_ALIAS(memset)
|
|
||||||
EXPORT_SYMBOL(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
|
* ISO C memset - set a memory block to a byte value. This function uses
|
||||||
* enhanced rep stosb to override the fast string function.
|
* enhanced rep stosb to override the fast string function.
|
||||||
|
|
Загрузка…
Ссылка в новой задаче