diff options
Diffstat (limited to 'build/external/patches/dpdk_21.11/0002-crypto-qat-fix-raw-data-path-aead.patch')
-rw-r--r-- | build/external/patches/dpdk_21.11/0002-crypto-qat-fix-raw-data-path-aead.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/build/external/patches/dpdk_21.11/0002-crypto-qat-fix-raw-data-path-aead.patch b/build/external/patches/dpdk_21.11/0002-crypto-qat-fix-raw-data-path-aead.patch new file mode 100644 index 00000000000..5e74f26c359 --- /dev/null +++ b/build/external/patches/dpdk_21.11/0002-crypto-qat-fix-raw-data-path-aead.patch @@ -0,0 +1,47 @@ +From 27c5c59aaf29236ba178ad18e399d3d6d9574739 Mon Sep 17 00:00:00 2001 +From: Fan Zhang <roy.fan.zhang@intel.com> +Date: Mon, 17 Jan 2022 15:22:18 +0000 +Subject: [PATCH] crypto/qat: fix raw data path aead + +This patch fixes raw data path AEAD operation for 4th QAT +generation. + +Fixes: 328d690d2f60 ("crypto/qat: update raw data path") + +Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com> +--- + drivers/crypto/qat/qat_sym_hw_dp.c | 11 +++++++++-- + 1 file changed, 9 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..02875b822e 100644 +--- a/drivers/crypto/qat/qat_sym_hw_dp.c ++++ b/drivers/crypto/qat/qat_sym_hw_dp.c +@@ -520,6 +520,8 @@ enqueue_one_aead_job(struct qat_sym_session *ctx, + { + struct icp_qat_fw_la_cipher_req_params *cipher_param = + (void *)&req->serv_specif_rqpars; ++ struct icp_qat_fw_la_cipher_20_req_params *cipher_param20 = ++ (void *)&req->serv_specif_rqpars; + struct icp_qat_fw_la_auth_req_params *auth_param = + (void *)((uint8_t *)&req->serv_specif_rqpars + + ICP_QAT_FW_HASH_REQUEST_PARAMETERS_OFFSET); +@@ -533,8 +535,13 @@ 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) { ++ cipher_param20->spc_aad_addr = aad->iova; ++ cipher_param20->spc_auth_res_addr = digest->iova; ++ } else { ++ cipher_param->spc_aad_addr = aad->iova; ++ cipher_param->spc_auth_res_addr = digest->iova; ++ } + return; + } + +-- +2.25.1 + |