From 013a095d6b348afddceaa5ea710ef6309566dc85 Mon Sep 17 00:00:00 2001 From: Kai Ji Date: Fri, 25 Mar 2022 19:22:07 +0800 Subject: [PATCH] crypto/qat: fix of cipher offset and length assignment This patch fix the cipher offset and length values when convert mbuf to vector chain for QAT build op. Fixes: a815a04cea05 ("crypto/qat: support symmetric build op request") Signed-off-by: Kai Ji --- drivers/crypto/qat/dev/qat_crypto_pmd_gens.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h b/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h index 50a9c5ad5b..dc473e0624 100644 --- a/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h +++ b/drivers/crypto/qat/dev/qat_crypto_pmd_gens.h @@ -395,12 +395,12 @@ qat_sym_convert_op_to_vec_chain(struct rte_crypto_op *op, ret = qat_cipher_is_len_in_bits(ctx, op); switch (ret) { case 1: - cipher_len = op->sym->aead.data.length >> 3; - cipher_ofs = op->sym->aead.data.offset >> 3; + cipher_len = op->sym->cipher.data.length >> 3; + cipher_ofs = op->sym->cipher.data.offset >> 3; break; case 0: - cipher_len = op->sym->aead.data.length; - cipher_ofs = op->sym->aead.data.offset; + cipher_len = op->sym->cipher.data.length; + cipher_ofs = op->sym->cipher.data.offset; break; default: QAT_DP_LOG(ERR, @@ -426,7 +426,6 @@ qat_sym_convert_op_to_vec_chain(struct rte_crypto_op *op, return -EINVAL; } - min_ofs = cipher_ofs < auth_ofs ? cipher_ofs : auth_ofs; max_len = RTE_MAX(cipher_ofs + cipher_len, auth_ofs + auth_len); /* digest in buffer check. Needed only for wireless algos */ @@ -463,7 +462,8 @@ qat_sym_convert_op_to_vec_chain(struct rte_crypto_op *op, ctx->digest_length); } - n_src = rte_crypto_mbuf_to_vec(op->sym->m_src, min_ofs, max_len, + /* Passing 0 as cipher & auth offsets are assigned into ofs later */ + n_src = rte_crypto_mbuf_to_vec(op->sym->m_src, 0, max_len, in_sgl->vec, QAT_SYM_SGL_MAX_NUMBER); if (unlikely(n_src < 0 || n_src > op->sym->m_src->nb_segs)) { op->status = RTE_CRYPTO_OP_STATUS_ERROR; -- 2.25.1