[PATCH] riscv: Define __riscv_copy_{,vec_}{words,bytes}_unaligned() using SYM_TYPED_FUNC_START

Sami Tolvanen samitolvanen at google.com
Tue Apr 7 12:51:06 PDT 2026


Hi Nathan,

On Mon, Apr 6, 2026 at 4:26 PM Nathan Chancellor <nathan at kernel.org> 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 at kernel.org>
> ---
>  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 at google.com>

Sami



More information about the linux-riscv mailing list