[PATCH] riscv: crypto - Use SYM_FUNC_START for functions only called directly

Herbert Xu herbert at gondor.apana.org.au
Thu Apr 24 19:48:44 PDT 2025


On Thu, Apr 24, 2025 at 05:23:22PM -0700, Nathan Chancellor wrote:
> After some recent changes to the RISC-V crypto code that turned some
> indirect function calls into direct ones, builds with CONFIG_CFI_CLANG
> fail with:
> 
>   ld.lld: error: undefined symbol: __kcfi_typeid_sm3_transform_zvksh_zvkb
>   >>> referenced by arch/riscv/crypto/sm3-riscv64-zvksh-zvkb.o:(.text+0x2) in archive vmlinux.a
> 
>   ld.lld: error: undefined symbol: __kcfi_typeid_sha512_transform_zvknhb_zvkb
>   >>> referenced by arch/riscv/crypto/sha512-riscv64-zvknhb-zvkb.o:(.text+0x2) in archive vmlinux.a
> 
>   ld.lld: error: undefined symbol: __kcfi_typeid_sha256_transform_zvknha_or_zvknhb_zvkb
>   >>> referenced by arch/riscv/crypto/sha256-riscv64-zvknha_or_zvknhb-zvkb.o:(.text+0x2) in archive vmlinux.a
> 
> As these functions are no longer indirectly called (i.e., have their
> address taken), the compiler will not emit __kcfi_typeid symbols for
> them but SYM_TYPED_FUNC_START expects these to exist at link time.
> 
> Switch the definitions of these functions to use SYM_FUNC_START, as they
> no longer need kCFI type information since they are only called
> directly.
> 
> Fixes: 1523eaed0ac5 ("crypto: riscv/sm3 - Use API partial block handling")
> Fixes: 561aab1104d8 ("crypto: riscv/sha512 - Use API partial block handling")
> Fixes: e6c5597badf2 ("crypto: riscv/sha256 - Use API partial block handling")
> Signed-off-by: Nathan Chancellor <nathan at kernel.org>
> ---
>  arch/riscv/crypto/sha256-riscv64-zvknha_or_zvknhb-zvkb.S | 4 ++--
>  arch/riscv/crypto/sha512-riscv64-zvknhb-zvkb.S           | 4 ++--
>  arch/riscv/crypto/sm3-riscv64-zvksh-zvkb.S               | 4 ++--
>  3 files changed, 6 insertions(+), 6 deletions(-)

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert at gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt



More information about the linux-riscv mailing list