• Mark Rutland's avatar
    arm64: clean up symbol aliasing · 0f61f6be
    Mark Rutland authored
    Now that we have SYM_FUNC_ALIAS() and SYM_FUNC_ALIAS_WEAK(), use those
    to simplify and more consistently define function aliases across
    arch/arm64.
    
    Aliases are now defined in terms of a canonical function name. For
    position-independent functions I've made the __pi_<func> name the
    canonical name, and defined other alises in terms of this.
    
    The SYM_FUNC_{START,END}_PI(func) macros obscure the __pi_<func> name,
    and make this hard to seatch for. The SYM_FUNC_START_WEAK_PI() macro
    also obscures the fact that the __pi_<func> fymbol is global and the
    <func> symbol is weak. For clarity, I have removed these macros and used
    SYM_FUNC_{START,END}() directly with the __pi_<func> name.
    
    For example:
    
    	SYM_FUNC_START_WEAK_PI(func)
    	... asm insns ...
    	SYM_FUNC_END_PI(func)
    	EXPORT_SYMBOL(func)
    
    ... becomes:
    
    	SYM_FUNC_START(__pi_func)
    	... asm insns ...
    	SYM_FUNC_END(__pi_func)
    
    	SYM_FUNC_ALIAS_WEAK(func, __pi_func)
    	EXPORT_SYMBOL(func)
    
    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)
    
    For consistency with the other string functions, I've defined strrchr as
    a position-independent function, as it can safely be used as such even
    though we have no users today.
    
    As we no longer use SYM_FUNC_{START,END}_ALIAS(), our local copies are
    removed. The common versions will be removed by a subsequent patch.
    
    There should be no functional change as a result of this patch.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Acked-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    Acked-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
    Acked-by: default avatarMark Brown <broonie@kernel.org>
    Cc: Joey Gouly <joey.gouly@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lore.kernel.org/r/20220216162229.1076788-3-mark.rutland@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
    0f61f6be
copy_page.S 1.71 KB