[v2,15/18] crypto/cnxk: remove unused ctx buf len

Message ID 20220809105356.561-16-anoobj@marvell.com (mailing list archive)
State Accepted, archived
Delegated to: akhil goyal
Headers
Series Fixes and improvements in cnxk crypto PMDs |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Anoob Joseph Aug. 9, 2022, 10:53 a.m. UTC
  Ctx len buf field is unused. Remove it.

Signed-off-by: Anoob Joseph <anoobj@marvell.com>
---
 drivers/common/cnxk/roc_se.h  | 45 +++++++++++++++--------------------
 drivers/crypto/cnxk/cnxk_se.h | 27 +++++++++++----------
 2 files changed, 33 insertions(+), 39 deletions(-)
  

Comments

Thomas Monjalon Sept. 28, 2022, 10:14 a.m. UTC | #1
09/08/2022 12:53, Anoob Joseph:
> Ctx len buf field is unused. Remove it.

There is no such field.
What do you mean exactly?

> -struct roc_se_fc_params {
> -	/* 0th cache line */
> -	union {
> -		struct roc_se_buf_ptr bufs[1];
> -		struct {
> -			struct roc_se_iov_ptr *src_iov;
> -			struct roc_se_iov_ptr *dst_iov;
> -		};
> -	};
> -	void *iv_buf;
> -	void *auth_iv_buf;
> -	struct roc_se_buf_ptr meta_buf;
> -	struct roc_se_buf_ptr ctx_buf;
> -	uint32_t rsvd2;
> -	uint8_t rsvd3;
> -	uint8_t iv_ovr;
> -	uint8_t cipher_iv_len;
> -	uint8_t auth_iv_len;
> -
> -	/* 1st cache line */
> -	struct roc_se_buf_ptr aad_buf __plt_cache_aligned;
> -	struct roc_se_buf_ptr mac_buf;
> -};
> -
> -PLT_STATIC_ASSERT((offsetof(struct roc_se_fc_params, aad_buf) % 128) == 0);
> -
>  #define ROC_SE_PDCP_ALG_TYPE_ZUC	  0
>  #define ROC_SE_PDCP_ALG_TYPE_SNOW3G	  1
>  #define ROC_SE_PDCP_ALG_TYPE_AES_CTR	  2
> @@ -349,6 +323,25 @@ struct roc_se_ctx {
>  	uint8_t *auth_key;
>  };
>  
> +struct roc_se_fc_params {
> +	union {
> +		struct roc_se_buf_ptr bufs[1];
> +		struct {
> +			struct roc_se_iov_ptr *src_iov;
> +			struct roc_se_iov_ptr *dst_iov;
> +		};
> +	};
> +	void *iv_buf;
> +	void *auth_iv_buf;
> +	struct roc_se_ctx *ctx;
> +	struct roc_se_buf_ptr meta_buf;
> +	uint8_t cipher_iv_len;
> +	uint8_t auth_iv_len;
> +
> +	struct roc_se_buf_ptr aad_buf;
> +	struct roc_se_buf_ptr mac_buf;
> +};
  
Anoob Joseph Sept. 28, 2022, 10:17 a.m. UTC | #2
Hi Thomas,

'struct roc_se_buf_ptr ctx_buf' has fields for a pointer and len. The field for len was unused. It was removed and the required pointer was added in the parent struct.

Thanks,
Anoob 

> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Wednesday, September 28, 2022 3:44 PM
> To: Akhil Goyal <gakhil@marvell.com>; Jerin Jacob Kollanukkaran
> <jerinj@marvell.com>; Anoob Joseph <anoobj@marvell.com>
> Cc: Archana Muniganti <marchana@marvell.com>; Tejasree Kondoj
> <ktejasree@marvell.com>; dev@dpdk.org
> Subject: [EXT] Re: [PATCH v2 15/18] crypto/cnxk: remove unused ctx buf len
> 
> External Email
> 
> ----------------------------------------------------------------------
> 09/08/2022 12:53, Anoob Joseph:
> > Ctx len buf field is unused. Remove it.
> 
> There is no such field.
> What do you mean exactly?
> 
> > -struct roc_se_fc_params {
> > -	/* 0th cache line */
> > -	union {
> > -		struct roc_se_buf_ptr bufs[1];
> > -		struct {
> > -			struct roc_se_iov_ptr *src_iov;
> > -			struct roc_se_iov_ptr *dst_iov;
> > -		};
> > -	};
> > -	void *iv_buf;
> > -	void *auth_iv_buf;
> > -	struct roc_se_buf_ptr meta_buf;
> > -	struct roc_se_buf_ptr ctx_buf;
> > -	uint32_t rsvd2;
> > -	uint8_t rsvd3;
> > -	uint8_t iv_ovr;
> > -	uint8_t cipher_iv_len;
> > -	uint8_t auth_iv_len;
> > -
> > -	/* 1st cache line */
> > -	struct roc_se_buf_ptr aad_buf __plt_cache_aligned;
> > -	struct roc_se_buf_ptr mac_buf;
> > -};
> > -
> > -PLT_STATIC_ASSERT((offsetof(struct roc_se_fc_params, aad_buf) % 128)
> == 0);
> > -
> >  #define ROC_SE_PDCP_ALG_TYPE_ZUC	  0
> >  #define ROC_SE_PDCP_ALG_TYPE_SNOW3G	  1
> >  #define ROC_SE_PDCP_ALG_TYPE_AES_CTR	  2
> > @@ -349,6 +323,25 @@ struct roc_se_ctx {
> >  	uint8_t *auth_key;
> >  };
> >
> > +struct roc_se_fc_params {
> > +	union {
> > +		struct roc_se_buf_ptr bufs[1];
> > +		struct {
> > +			struct roc_se_iov_ptr *src_iov;
> > +			struct roc_se_iov_ptr *dst_iov;
> > +		};
> > +	};
> > +	void *iv_buf;
> > +	void *auth_iv_buf;
> > +	struct roc_se_ctx *ctx;
> > +	struct roc_se_buf_ptr meta_buf;
> > +	uint8_t cipher_iv_len;
> > +	uint8_t auth_iv_len;
> > +
> > +	struct roc_se_buf_ptr aad_buf;
> > +	struct roc_se_buf_ptr mac_buf;
> > +};
> 
>
  
Thomas Monjalon Sept. 28, 2022, 11 a.m. UTC | #3
28/09/2022 12:17, Anoob Joseph:
> Hi Thomas,
> 
> 'struct roc_se_buf_ptr ctx_buf' has fields for a pointer and len. The field for len was unused. It was removed and the required pointer was added in the parent struct.

OK, thanks, I've added your explanation in the commit message.

> Thanks,
> Anoob 
> 
> From: Thomas Monjalon <thomas@monjalon.net>
> > 09/08/2022 12:53, Anoob Joseph:
> > > Ctx len buf field is unused. Remove it.
> > 
> > There is no such field.
> > What do you mean exactly?
  

Patch

diff --git a/drivers/common/cnxk/roc_se.h b/drivers/common/cnxk/roc_se.h
index 86bb3aa79d..d1a87a96da 100644
--- a/drivers/common/cnxk/roc_se.h
+++ b/drivers/common/cnxk/roc_se.h
@@ -287,32 +287,6 @@  struct roc_se_iov_ptr {
 	struct roc_se_buf_ptr bufs[];
 };
 
-struct roc_se_fc_params {
-	/* 0th cache line */
-	union {
-		struct roc_se_buf_ptr bufs[1];
-		struct {
-			struct roc_se_iov_ptr *src_iov;
-			struct roc_se_iov_ptr *dst_iov;
-		};
-	};
-	void *iv_buf;
-	void *auth_iv_buf;
-	struct roc_se_buf_ptr meta_buf;
-	struct roc_se_buf_ptr ctx_buf;
-	uint32_t rsvd2;
-	uint8_t rsvd3;
-	uint8_t iv_ovr;
-	uint8_t cipher_iv_len;
-	uint8_t auth_iv_len;
-
-	/* 1st cache line */
-	struct roc_se_buf_ptr aad_buf __plt_cache_aligned;
-	struct roc_se_buf_ptr mac_buf;
-};
-
-PLT_STATIC_ASSERT((offsetof(struct roc_se_fc_params, aad_buf) % 128) == 0);
-
 #define ROC_SE_PDCP_ALG_TYPE_ZUC	  0
 #define ROC_SE_PDCP_ALG_TYPE_SNOW3G	  1
 #define ROC_SE_PDCP_ALG_TYPE_AES_CTR	  2
@@ -349,6 +323,25 @@  struct roc_se_ctx {
 	uint8_t *auth_key;
 };
 
+struct roc_se_fc_params {
+	union {
+		struct roc_se_buf_ptr bufs[1];
+		struct {
+			struct roc_se_iov_ptr *src_iov;
+			struct roc_se_iov_ptr *dst_iov;
+		};
+	};
+	void *iv_buf;
+	void *auth_iv_buf;
+	struct roc_se_ctx *ctx;
+	struct roc_se_buf_ptr meta_buf;
+	uint8_t cipher_iv_len;
+	uint8_t auth_iv_len;
+
+	struct roc_se_buf_ptr aad_buf;
+	struct roc_se_buf_ptr mac_buf;
+};
+
 static inline void
 roc_se_zuc_bytes_swap(uint8_t *arr, int len)
 {
diff --git a/drivers/crypto/cnxk/cnxk_se.h b/drivers/crypto/cnxk/cnxk_se.h
index 99fb3b899e..33e65eb4e3 100644
--- a/drivers/crypto/cnxk/cnxk_se.h
+++ b/drivers/crypto/cnxk/cnxk_se.h
@@ -334,7 +334,7 @@  cpt_digest_gen_prep(uint32_t flags, uint64_t d_lens,
 	uint32_t g_size_bytes, s_size_bytes;
 	union cpt_inst_w4 cpt_inst_w4;
 
-	ctx = params->ctx_buf.vaddr;
+	ctx = params->ctx;
 
 	hash_type = ctx->hash_type;
 	mac_len = ctx->mac_len;
@@ -478,7 +478,8 @@  cpt_enc_hmac_prep(uint32_t flags, uint64_t d_offs, uint64_t d_lens,
 		aad_len = fc_params->aad_buf.size;
 		aad_buf = &fc_params->aad_buf;
 	}
-	se_ctx = fc_params->ctx_buf.vaddr;
+
+	se_ctx = fc_params->ctx;
 	cipher_type = se_ctx->enc_cipher;
 	hash_type = se_ctx->hash_type;
 	mac_len = se_ctx->mac_len;
@@ -777,7 +778,7 @@  cpt_dec_hmac_prep(uint32_t flags, uint64_t d_offs, uint64_t d_lens,
 		aad_buf = &fc_params->aad_buf;
 	}
 
-	se_ctx = fc_params->ctx_buf.vaddr;
+	se_ctx = fc_params->ctx;
 	hash_type = se_ctx->hash_type;
 	mac_len = se_ctx->mac_len;
 	op_minor = se_ctx->template_w4.s.opcode_minor;
@@ -1087,7 +1088,7 @@  cpt_pdcp_chain_alg_prep(uint32_t req_flags, uint64_t d_offs, uint64_t d_lens,
 		return -1;
 	}
 
-	se_ctx = params->ctx_buf.vaddr;
+	se_ctx = params->ctx;
 	mac_len = se_ctx->mac_len;
 	pdcp_ci_alg = se_ctx->pdcp_ci_alg;
 	pdcp_auth_alg = se_ctx->pdcp_auth_alg;
@@ -1281,7 +1282,7 @@  cpt_pdcp_alg_prep(uint32_t req_flags, uint64_t d_offs, uint64_t d_lens,
 	uint8_t pack_iv = 0;
 	union cpt_inst_w4 cpt_inst_w4;
 
-	se_ctx = params->ctx_buf.vaddr;
+	se_ctx = params->ctx;
 	flags = se_ctx->zsk_flags;
 	mac_len = se_ctx->mac_len;
 
@@ -1562,7 +1563,7 @@  cpt_kasumi_enc_prep(uint32_t req_flags, uint64_t d_offs, uint64_t d_lens,
 	encr_data_len = ROC_SE_ENCR_DLEN(d_lens);
 	auth_data_len = ROC_SE_AUTH_DLEN(d_lens);
 
-	se_ctx = params->ctx_buf.vaddr;
+	se_ctx = params->ctx;
 	flags = se_ctx->zsk_flags;
 	mac_len = se_ctx->mac_len;
 
@@ -1751,7 +1752,7 @@  cpt_kasumi_dec_prep(uint64_t d_offs, uint64_t d_lens,
 	encr_offset = ROC_SE_ENCR_OFFSET(d_offs) / 8;
 	encr_data_len = ROC_SE_ENCR_DLEN(d_lens);
 
-	se_ctx = params->ctx_buf.vaddr;
+	se_ctx = params->ctx;
 	flags = se_ctx->zsk_flags;
 
 	cpt_inst_w4.u64 = 0;
@@ -1863,7 +1864,7 @@  static __rte_always_inline int
 cpt_fc_enc_hmac_prep(uint32_t flags, uint64_t d_offs, uint64_t d_lens,
 		     struct roc_se_fc_params *fc_params, struct cpt_inst_s *inst)
 {
-	struct roc_se_ctx *ctx = fc_params->ctx_buf.vaddr;
+	struct roc_se_ctx *ctx = fc_params->ctx;
 	uint8_t fc_type;
 	int ret = -1;
 
@@ -2410,7 +2411,7 @@  fill_fc_params(struct rte_crypto_op *cop, struct cnxk_se_sess *sess,
 		flags |= ROC_SE_VALID_IV_BUF;
 		fc_params.iv_buf = rte_crypto_op_ctod_offset(cop, uint8_t *,
 							     sess->iv_offset);
-		if (sess->aes_ctr && unlikely(sess->iv_length != 16)) {
+		if (!is_aead && sess->aes_ctr && unlikely(sess->iv_length != 16)) {
 			memcpy((uint8_t *)iv_buf,
 			       rte_crypto_op_ctod_offset(cop, uint8_t *,
 							 sess->iv_offset),
@@ -2520,7 +2521,7 @@  fill_fc_params(struct rte_crypto_op *cop, struct cnxk_se_sess *sess,
 			}
 		}
 	}
-	fc_params.ctx_buf.vaddr = &sess->roc_se_ctx;
+	fc_params.ctx = &sess->roc_se_ctx;
 
 	if (!(sess->auth_first) && unlikely(sess->is_null || sess->cpt_op == ROC_SE_OP_DECODE))
 		inplace = 0;
@@ -2649,7 +2650,7 @@  fill_pdcp_params(struct rte_crypto_op *cop, struct cnxk_se_sess *sess,
 	d_offs = (uint64_t)c_data_off << 16;
 	d_lens = (uint64_t)c_data_len << 32;
 
-	fc_params.ctx_buf.vaddr = &sess->roc_se_ctx;
+	fc_params.ctx = &sess->roc_se_ctx;
 
 	if (likely(m_dst == NULL || m_src == m_dst)) {
 		fc_params.dst_iov = fc_params.src_iov = (void *)src;
@@ -2792,7 +2793,7 @@  fill_pdcp_chain_params(struct rte_crypto_op *cop, struct cnxk_se_sess *sess,
 					ci_data_length, true);
 	}
 
-	fc_params.ctx_buf.vaddr = &sess->roc_se_ctx;
+	fc_params.ctx = &sess->roc_se_ctx;
 
 	if (likely((m_dst == NULL || m_dst == m_src)) && inplace) {
 		fc_params.dst_iov = fc_params.src_iov = (void *)src;
@@ -2991,7 +2992,7 @@  fill_digest_params(struct rte_crypto_op *cop, struct cnxk_se_sess *sess,
 
 	d_lens = sym_op->auth.data.length;
 
-	params.ctx_buf.vaddr = &sess->roc_se_ctx;
+	params.ctx = &sess->roc_se_ctx;
 
 	if (auth_op == ROC_SE_OP_AUTH_GENERATE) {
 		if (sym_op->auth.digest.data) {