• Eric Biggers's avatar
    crypto: x86/sm4 - fix crash with CFI enabled · 2d203c46
    Eric Biggers authored
    sm4_aesni_avx_ctr_enc_blk8(), sm4_aesni_avx_cbc_dec_blk8(),
    sm4_aesni_avx_cfb_dec_blk8(), sm4_aesni_avx2_ctr_enc_blk16(),
    sm4_aesni_avx2_cbc_dec_blk16(), and sm4_aesni_avx2_cfb_dec_blk16() are
    called via indirect function calls.  Therefore they need to use
    SYM_TYPED_FUNC_START instead of SYM_FUNC_START to cause their type
    hashes to be emitted when the kernel is built with CONFIG_CFI_CLANG=y.
    Otherwise, the code crashes with a CFI failure.
    
    (Or at least that should be the case.  For some reason the CFI checks in
    sm4_avx_cbc_decrypt(), sm4_avx_cfb_decrypt(), and sm4_avx_ctr_crypt()
    are not always being generated, using current tip-of-tree clang.
    Anyway, this patch is a good idea anyway.)
    
    Fixes: ccace936 ("x86: Add types to indirectly called assembly functions")
    Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    2d203c46
sm4-aesni-avx2-asm_64.S 15.4 KB