Re: [PATCH] riscv: Define __riscv_copy_{,vec_}{words,bytes}_unaligned() using SYM_TYPED_FUNC_START
From: Sami Tolvanen
Date: Tue Apr 07 2026 - 15:51:54 EST
Hi Nathan,
On Mon, Apr 6, 2026 at 4:26 PM Nathan Chancellor <nathan@xxxxxxxxxx> wrote:
>
> After commit 67bdd7b01387 ("riscv: Split out measure_cycles() for
> reuse") and commit c03ad15f7cf6 ("riscv: Reuse measure_cycles() in
> check_vector_unaligned_access()"), there are CFI failure when booting
> kernels with CONFIG_CFI=y:
>
> CFI failure at measure_cycles+0x38/0xe0 (target: __riscv_copy_words_unaligned+0x0/0x50; expected type: ...)
> CFI failure at measure_cycles+0x38/0xe0 (target: __riscv_copy_vec_words_unaligned+0x0/0x24; expected type: ...)
>
> The __riscv_copy_*_unaligned() functions are now called indirectly but
> they are not defined with SYM_TYPED_FUNC_START, which is required for
> assembly functions called indirectly from C to pass CFI checking. Switch
> to SYM_TYPED_FUNC_START to clear up the CFI failures.
>
> Fixes: 67bdd7b01387 ("riscv: Split out measure_cycles() for reuse")
> Fixes: c03ad15f7cf6 ("riscv: Reuse measure_cycles() in check_vector_unaligned_access()")
> Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx>
> ---
> arch/riscv/kernel/copy-unaligned.S | 5 +++--
> arch/riscv/kernel/vec-copy-unaligned.S | 5 +++--
> 2 files changed, 6 insertions(+), 4 deletions(-)
Looks good to me. Thanks for testing this configuration!
Reviewed-by: Sami Tolvanen <samitolvanen@xxxxxxxxxx>
Sami