[dpdk-dev v1] crypto/qat: fix QAT GEN4 AEAD job in raw data path

Kai Ji kai.ji at intel.com
Fri Jan 21 11:38:30 CET 2022


This patch fix the cipher params configuration in AEAD job if
QAT GEN4 unified cipher slice(UCS) enabled.

Fixes: 328d690d2f60 ("crypto/qat: update raw data path")
Cc: roy.fan.zhang at intel.com

Signed-off-by: Kai Ji <kai.ji at intel.com>
---
 drivers/crypto/qat/qat_sym_hw_dp.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/qat/qat_sym_hw_dp.c b/drivers/crypto/qat/qat_sym_hw_dp.c
index 12825e448b..792ad2b213 100644
--- a/drivers/crypto/qat/qat_sym_hw_dp.c
+++ b/drivers/crypto/qat/qat_sym_hw_dp.c
@@ -533,8 +533,20 @@ enqueue_one_aead_job(struct qat_sym_session *ctx,
 	/* CPM 1.7 uses single pass to treat AEAD as cipher operation */
 	if (ctx->is_single_pass) {
 		enqueue_one_cipher_job(ctx, req, iv, ofs, data_len);
-		cipher_param->spc_aad_addr = aad->iova;
-		cipher_param->spc_auth_res_addr = digest->iova;
+
+		if (ctx->is_ucs) {
+			/* QAT GEN4 uses single pass to treat AEAD as cipher
+			 * operation
+			 */
+			struct icp_qat_fw_la_cipher_20_req_params *cipher_param_20 =
+				(void *)&req->serv_specif_rqpars;
+			cipher_param_20->spc_aad_addr = aad->iova;
+			cipher_param_20->spc_auth_res_addr = digest->iova;
+		} else {
+			cipher_param->spc_aad_addr = aad->iova;
+			cipher_param->spc_auth_res_addr = digest->iova;
+		}
+
 		return;
 	}
 
-- 
2.30.2



More information about the stable mailing list