On 23/10/2023 11:59, Andrew Jones wrote: > On Wed, Oct 04, 2023 at 04:30:51PM +0200, Clément Léger wrote: > ... >> diff --git a/arch/riscv/lib/memmove.S b/arch/riscv/lib/memmove.S >> index 1930b388c3a0..5130033e3e02 100644 >> --- a/arch/riscv/lib/memmove.S >> +++ b/arch/riscv/lib/memmove.S >> @@ -7,7 +7,6 @@ >> #include <asm/asm.h> >> >> SYM_FUNC_START(__memmove) >> -SYM_FUNC_START_WEAK(memmove) >> /* >> * Returns >> * a0 - dest >> @@ -314,5 +313,6 @@ SYM_FUNC_START_WEAK(memmove) >> >> SYM_FUNC_END(memmove) > > Should this one above be removed? Hugh :/ yeah, thanks for catching this. > >> SYM_FUNC_END(__memmove) >> +SYM_FUNC_ALIAS_WEAK(memmove, __memmove) >> SYM_FUNC_ALIAS(__pi_memmove, __memmove) >> SYM_FUNC_ALIAS(__pi___memmove, __memmove) >> diff --git a/arch/riscv/lib/memset.S b/arch/riscv/lib/memset.S >> index 34c5360c6705..35f358e70bdb 100644 >> --- a/arch/riscv/lib/memset.S >> +++ b/arch/riscv/lib/memset.S >> @@ -8,8 +8,7 @@ >> #include <asm/asm.h> >> >> /* void *memset(void *, int, size_t) */ >> -ENTRY(__memset) >> -WEAK(memset) >> +SYM_FUNC_START(__memset) >> move t0, a0 /* Preserve return value */ >> >> /* Defer to byte-oriented fill for small sizes */ >> @@ -110,4 +109,5 @@ WEAK(memset) >> bltu t0, a3, 5b >> 6: >> ret >> -END(__memset) >> +SYM_FUNC_END(__memset) >> +SYM_FUNC_ALIAS_WEAK(memset, __memset) >> diff --git a/arch/riscv/lib/uaccess.S b/arch/riscv/lib/uaccess.S >> index 09b47ebacf2e..3ab438f30d13 100644 >> --- a/arch/riscv/lib/uaccess.S >> +++ b/arch/riscv/lib/uaccess.S >> @@ -10,8 +10,7 @@ >> _asm_extable 100b, \lbl >> .endm >> >> -ENTRY(__asm_copy_to_user) >> -ENTRY(__asm_copy_from_user) >> +SYM_FUNC_START(__asm_copy_to_user) >> >> /* Enable access to user memory */ >> li t6, SR_SUM >> @@ -181,13 +180,13 @@ ENTRY(__asm_copy_from_user) >> csrc CSR_STATUS, t6 >> sub a0, t5, a0 >> ret >> -ENDPROC(__asm_copy_to_user) >> -ENDPROC(__asm_copy_from_user) >> +SYM_FUNC_END(__asm_copy_to_user) >> EXPORT_SYMBOL(__asm_copy_to_user) >> +SYM_FUNC_ALIAS(__asm_copy_from_user, __asm_copy_to_user) > > IIUC, we'll only have debug information for __asm_copy_to_user. I'm not > sure what that means for debugging. Is it possible to generate something > confusing? I'll check that with GDB to be sure we don't have anything fancy here. > >> EXPORT_SYMBOL(__asm_copy_from_user) >> >> >> -ENTRY(__clear_user) >> +SYM_FUNC_START(__clear_user) >> >> /* Enable access to user memory */ >> li t6, SR_SUM >> @@ -233,5 +232,5 @@ ENTRY(__clear_user) >> csrc CSR_STATUS, t6 >> sub a0, a3, a0 >> ret >> -ENDPROC(__clear_user) >> +SYM_FUNC_END(__clear_user) >> EXPORT_SYMBOL(__clear_user) >> diff --git a/arch/riscv/purgatory/entry.S b/arch/riscv/purgatory/entry.S >> index 0194f4554130..7befa276fb01 100644 >> --- a/arch/riscv/purgatory/entry.S >> +++ b/arch/riscv/purgatory/entry.S >> @@ -7,15 +7,11 @@ >> * Author: Li Zhengyu (lizhengyu3@xxxxxxxxxx) >> * >> */ >> - >> -.macro size, sym:req >> - .size \sym, . - \sym >> -.endm >> +#include <linux/linkage.h> >> >> .text >> >> -.globl purgatory_start >> -purgatory_start: >> +SYM_CODE_START(purgatory_start) >> >> lla sp, .Lstack >> mv s0, a0 /* The hartid of the current hart */ >> @@ -28,8 +24,7 @@ purgatory_start: >> mv a1, s1 >> ld a2, riscv_kernel_entry >> jr a2 >> - >> -size purgatory_start >> +SYM_CODE_END(purgatory_start) >> >> .align 4 >> .rept 256 >> @@ -39,9 +34,8 @@ size purgatory_start >> >> .data >> >> -.globl riscv_kernel_entry >> -riscv_kernel_entry: >> +SYM_DATA_START(riscv_kernel_entry) >> .quad 0 >> -size riscv_kernel_entry >> +SYM_DATA_END(riscv_kernel_entry) > > I think we could also use the shorthand version for this one-liner. > > SYM_DATA(riscv_kernel_entry, quad 0) Oh yes, nice catch. Thanks, Clément > > Thanks, > drew