This looks strange to me: > +static int aes_s2v(struct crypto_shash *tfm, > size_t num_elem, const u8 *addr[], size_t len[], > u8 *v) > { > - u8 d[AES_BLOCK_SIZE], tmp[AES_BLOCK_SIZE]; > + u8 d[AES_BLOCK_SIZE], tmp[AES_BLOCK_SIZE] = {}; > + SHASH_DESC_ON_STACK(desc, tfm); desc declared > > + crypto_shash_digest(desc, tmp, AES_BLOCK_SIZE, d); used here > + crypto_shash_init(desc); but initialized now? johannes