]> www.infradead.org Git - users/jedix/linux-maple.git/commit
crypto: riscv - Use SYM_FUNC_START for functions only called directly
authorNathan Chancellor <nathan@kernel.org>
Fri, 25 Apr 2025 00:23:22 +0000 (17:23 -0700)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 25 Apr 2025 02:46:05 +0000 (10:46 +0800)
commitbf0b4f15267ca4047bbc533c83d9f7b7f447b5a1
tree6ca2cb1a3c5c54c3046a4ccd6062dd436a27e84b
parentaa38d87ec85273e3cee5ad60342930612315e540
crypto: riscv - Use SYM_FUNC_START for functions only called directly

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@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
arch/riscv/crypto/sha256-riscv64-zvknha_or_zvknhb-zvkb.S
arch/riscv/crypto/sha512-riscv64-zvknhb-zvkb.S
arch/riscv/crypto/sm3-riscv64-zvksh-zvkb.S