diff --git a/drivers/crypto/qat/qat_sym.c b/drivers/crypto/qat/qat_sym.c index 0dd83ee2ee..ff3d1ec484 100644 --- a/drivers/crypto/qat/qat_sym.c +++ b/drivers/crypto/qat/qat_sym.c @@ -394,9 +394,9 @@ qat_sym_build_request(void *in_op, uint8_t *out_msg, } min_ofs = auth_ofs; - - if (ctx->qat_hash_alg != ICP_QAT_HW_AUTH_ALGO_NULL || - ctx->auth_op == ICP_QAT_HW_AUTH_VERIFY) + if (ctx->qat_hash_alg == ICP_QAT_HW_AUTH_ALGO_NULL) + auth_param->auth_res_addr = cookie->digest_null_phys_addr; + else auth_param->auth_res_addr = op->sym->auth.digest.phys_addr; diff --git a/drivers/crypto/qat/qat_sym.h b/drivers/crypto/qat/qat_sym.h index e3ec7f0de4..91a4c38c37 100644 --- a/drivers/crypto/qat/qat_sym.h +++ b/drivers/crypto/qat/qat_sym.h @@ -52,6 +52,8 @@ struct qat_sym_op_cookie { phys_addr_t cd_phys_addr; } spc_gmac; } opt; + uint8_t digest_null[4]; + phys_addr_t digest_null_phys_addr; }; int diff --git a/drivers/crypto/qat/qat_sym_pmd.c b/drivers/crypto/qat/qat_sym_pmd.c index b835245f17..8069989ce8 100644 --- a/drivers/crypto/qat/qat_sym_pmd.c +++ b/drivers/crypto/qat/qat_sym_pmd.c @@ -43,6 +43,11 @@ qat_sym_init_op_cookie(void *op_cookie) rte_mempool_virt2iova(cookie) + offsetof(struct qat_sym_op_cookie, opt.spc_gmac.cd_cipher); + + cookie->digest_null_phys_addr = + rte_mempool_virt2iova(cookie) + + offsetof(struct qat_sym_op_cookie, + digest_null); } static uint16_t