[v1] crypto/qat: fix QAT GEN4 AEAD job in raw data path
Checks
Commit Message
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@intel.com
Signed-off-by: Kai Ji <kai.ji@intel.com>
---
drivers/crypto/qat/qat_sym_hw_dp.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
Comments
> -----Original Message-----
> From: Ji, Kai <kai.ji@intel.com>
> Sent: Friday, January 21, 2022 10:39 AM
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Ji, Kai <kai.ji@intel.com>; Zhang, Roy Fan
> <roy.fan.zhang@intel.com>
> Subject: [dpdk-dev v1] crypto/qat: fix QAT GEN4 AEAD job in raw data path
>
> 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@intel.com
>
> Signed-off-by: Kai Ji <kai.ji@intel.com>
> ---
Nice catch, thanks!
Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
> > 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@intel.com
> >
> > Signed-off-by: Kai Ji <kai.ji@intel.com>
> > ---
> Nice catch, thanks!
> Acked-by: Fan Zhang <roy.fan.zhang@intel.com>
Applied to dpdk-next-crypto
@@ -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;
}