[PATCH v2 21/68] cryptodev: replace use of rte_memcpy

Stephen Hemminger stephen at networkplumber.org
Fri Aug 21 21:24:16 CEST 2026


Using regular memcpy is as fast and safer.

Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
 drivers/crypto/ccp/ccp_crypto.c                    | 14 +++++---------
 drivers/crypto/cnxk/cnxk_se.h                      |  2 +-
 drivers/crypto/ipsec_mb/pmd_snow3g.c               |  4 ++--
 drivers/crypto/mlx5/mlx5_crypto_gcm.c              | 10 +++++-----
 drivers/crypto/scheduler/rte_cryptodev_scheduler.c |  6 +++---
 drivers/crypto/scheduler/scheduler_failover.c      | 12 ++++++------
 drivers/crypto/zsda/zsda_crypto_session.c          |  6 +++---
 lib/cryptodev/rte_cryptodev.c                      | 12 ++++--------
 8 files changed, 29 insertions(+), 37 deletions(-)

diff --git a/drivers/crypto/ccp/ccp_crypto.c b/drivers/crypto/ccp/ccp_crypto.c
index a8e085d6db..5ad1758f6e 100644
--- a/drivers/crypto/ccp/ccp_crypto.c
+++ b/drivers/crypto/ccp/ccp_crypto.c
@@ -169,7 +169,7 @@ static int partial_hash_sha1(uint8_t *data_in, uint8_t *data_out)
 	if (!SHA1_Init(&ctx))
 		return -EFAULT;
 	SHA1_Transform(&ctx, data_in);
-	rte_memcpy(data_out, &ctx, SHA_DIGEST_LENGTH);
+	memcpy(data_out, &ctx, SHA_DIGEST_LENGTH);
 	return 0;
 }
 
@@ -180,8 +180,7 @@ static int partial_hash_sha224(uint8_t *data_in, uint8_t *data_out)
 	if (!SHA224_Init(&ctx))
 		return -EFAULT;
 	SHA256_Transform(&ctx, data_in);
-	rte_memcpy(data_out, &ctx,
-		   SHA256_DIGEST_LENGTH);
+	memcpy(data_out, &ctx, SHA256_DIGEST_LENGTH);
 	return 0;
 }
 
@@ -192,8 +191,7 @@ static int partial_hash_sha256(uint8_t *data_in, uint8_t *data_out)
 	if (!SHA256_Init(&ctx))
 		return -EFAULT;
 	SHA256_Transform(&ctx, data_in);
-	rte_memcpy(data_out, &ctx,
-		   SHA256_DIGEST_LENGTH);
+	memcpy(data_out, &ctx, SHA256_DIGEST_LENGTH);
 	return 0;
 }
 
@@ -204,8 +202,7 @@ static int partial_hash_sha384(uint8_t *data_in, uint8_t *data_out)
 	if (!SHA384_Init(&ctx))
 		return -EFAULT;
 	SHA512_Transform(&ctx, data_in);
-	rte_memcpy(data_out, &ctx,
-		   SHA512_DIGEST_LENGTH);
+	memcpy(data_out, &ctx, SHA512_DIGEST_LENGTH);
 	return 0;
 }
 
@@ -216,8 +213,7 @@ static int partial_hash_sha512(uint8_t *data_in, uint8_t *data_out)
 	if (!SHA512_Init(&ctx))
 		return -EFAULT;
 	SHA512_Transform(&ctx, data_in);
-	rte_memcpy(data_out, &ctx,
-		   SHA512_DIGEST_LENGTH);
+	memcpy(data_out, &ctx, SHA512_DIGEST_LENGTH);
 	return 0;
 }
 
diff --git a/drivers/crypto/cnxk/cnxk_se.h b/drivers/crypto/cnxk/cnxk_se.h
index d267122fdd..3c79f2f85a 100644
--- a/drivers/crypto/cnxk/cnxk_se.h
+++ b/drivers/crypto/cnxk/cnxk_se.h
@@ -1253,7 +1253,7 @@ cpt_sm_prep(uint32_t flags, uint64_t d_offs, uint64_t d_lens, struct roc_se_fc_p
 			void *dst = PLT_PTR_ADD(offset_vaddr, ROC_SE_OFF_CTRL_LEN);
 			const uint64_t *src = fc_params->iv_buf;
 
-			rte_memcpy(dst, src, 16);
+			memcpy(dst, src, 16);
 		}
 		inst->w4.u64 = cpt_inst_w4.u64;
 	} else {
diff --git a/drivers/crypto/ipsec_mb/pmd_snow3g.c b/drivers/crypto/ipsec_mb/pmd_snow3g.c
index 8ce951a03e..2654a9f67a 100644
--- a/drivers/crypto/ipsec_mb/pmd_snow3g.c
+++ b/drivers/crypto/ipsec_mb/pmd_snow3g.c
@@ -293,8 +293,8 @@ process_snow3g_hash_op(struct ipsec_mb_qp *qp, struct rte_crypto_op **ops,
 
 			/* Copy back digest from src to auth.digest.data */
 			if (digest_appended)
-				rte_memcpy(ops[i]->sym->auth.digest.data,
-					dst, SNOW3G_DIGEST_LENGTH);
+				memcpy(ops[i]->sym->auth.digest.data, dst,
+				       SNOW3G_DIGEST_LENGTH);
 		}
 		processed_ops++;
 	}
diff --git a/drivers/crypto/mlx5/mlx5_crypto_gcm.c b/drivers/crypto/mlx5/mlx5_crypto_gcm.c
index f9ac00c7ed..a9de976b22 100644
--- a/drivers/crypto/mlx5/mlx5_crypto_gcm.c
+++ b/drivers/crypto/mlx5/mlx5_crypto_gcm.c
@@ -1062,9 +1062,9 @@ mlx5_crypto_gcm_ipsec_enqueue_burst(void *queue_pair,
 		 * shrink AAD before payload. First backup the mem,
 		 * then do shrink.
 		 */
-		rte_memcpy(&qp->ipsec_mem[idx],
-			   RTE_PTR_SUB(payload, MLX5_CRYPTO_GCM_IPSEC_IV_SIZE),
-			   MLX5_CRYPTO_GCM_IPSEC_IV_SIZE);
+		memcpy(&qp->ipsec_mem[idx],
+		       RTE_PTR_SUB(payload, MLX5_CRYPTO_GCM_IPSEC_IV_SIZE),
+		       MLX5_CRYPTO_GCM_IPSEC_IV_SIZE);
 		/* If no memory overlap, do copy directly, otherwise memmove. */
 		if (likely(pkt_iv_len >= sess->aad_len))
 			rte_memcpy(gcm_data.src_addr, op->sym->aead.aad.data, sess->aad_len);
@@ -1108,8 +1108,8 @@ mlx5_crypto_gcm_restore_ipsec_mem(struct mlx5_crypto_qp *qp,
 		if (unlikely(sess->aad_len > MLX5_CRYPTO_GCM_IPSEC_IV_SIZE))
 			memmove(op->sym->aead.aad.data,
 				RTE_PTR_SUB(payload, sess->aad_len), sess->aad_len);
-		rte_memcpy(RTE_PTR_SUB(payload, MLX5_CRYPTO_GCM_IPSEC_IV_SIZE),
-			   &qp->ipsec_mem[idx], MLX5_CRYPTO_GCM_IPSEC_IV_SIZE);
+		memcpy(RTE_PTR_SUB(payload, MLX5_CRYPTO_GCM_IPSEC_IV_SIZE),
+		       &qp->ipsec_mem[idx], MLX5_CRYPTO_GCM_IPSEC_IV_SIZE);
 		m_dst = op->sym->m_dst;
 		if (m_dst && m_dst != m_src) {
 			uint32_t bytes_to_copy;
diff --git a/drivers/crypto/scheduler/rte_cryptodev_scheduler.c b/drivers/crypto/scheduler/rte_cryptodev_scheduler.c
index 7434c7021e..846b5a0942 100644
--- a/drivers/crypto/scheduler/rte_cryptodev_scheduler.c
+++ b/drivers/crypto/scheduler/rte_cryptodev_scheduler.c
@@ -81,7 +81,7 @@ sync_caps(struct rte_cryptodev_capabilities *caps,
 
 		/* remove a uncommon cap from the array */
 		for (j = i; j < sync_nb_caps - 1; j++)
-			rte_memcpy(&caps[j], &caps[j+1], sizeof(*cap));
+			memcpy(&caps[j], &caps[j + 1], sizeof(*cap));
 
 		memset(&caps[sync_nb_caps - 1], 0, sizeof(*cap));
 		sync_nb_caps--;
@@ -218,8 +218,8 @@ sync_sec_caps(uint32_t worker_idx,
 		 * caps, from the arrays
 		 */
 		for (j = i; j < nb_sec_caps - 1; j++) {
-			rte_memcpy(&sec_caps[j], &sec_caps[j+1],
-					sizeof(*sec_cap));
+			memcpy(&sec_caps[j], &sec_caps[j + 1],
+			       sizeof(*sec_cap));
 
 			rte_memcpy(&sec_crypto_caps[j][0],
 					&sec_crypto_caps[j+1][0],
diff --git a/drivers/crypto/scheduler/scheduler_failover.c b/drivers/crypto/scheduler/scheduler_failover.c
index 52ff2ffbb7..e7c6d19d25 100644
--- a/drivers/crypto/scheduler/scheduler_failover.c
+++ b/drivers/crypto/scheduler/scheduler_failover.c
@@ -171,12 +171,12 @@ scheduler_start(struct rte_cryptodev *dev)
 		sched_ctx->workers[PRIMARY_WORKER_IDX].qp_id = i;
 		sched_ctx->workers[SECONDARY_WORKER_IDX].qp_id = i;
 
-		rte_memcpy(&qp_ctx->primary_worker,
-				&sched_ctx->workers[PRIMARY_WORKER_IDX],
-				sizeof(struct scheduler_worker));
-		rte_memcpy(&qp_ctx->secondary_worker,
-				&sched_ctx->workers[SECONDARY_WORKER_IDX],
-				sizeof(struct scheduler_worker));
+		memcpy(&qp_ctx->primary_worker,
+		       &sched_ctx->workers[PRIMARY_WORKER_IDX],
+		       sizeof(struct scheduler_worker));
+		memcpy(&qp_ctx->secondary_worker,
+		       &sched_ctx->workers[SECONDARY_WORKER_IDX],
+		       sizeof(struct scheduler_worker));
 	}
 
 	return 0;
diff --git a/drivers/crypto/zsda/zsda_crypto_session.c b/drivers/crypto/zsda/zsda_crypto_session.c
index 5087ae248a..c01141dd94 100644
--- a/drivers/crypto/zsda/zsda_crypto_session.c
+++ b/drivers/crypto/zsda/zsda_crypto_session.c
@@ -178,7 +178,7 @@ u32_to_u8(uint32_t *u_int32_t_data, uint8_t *u8_data)
 {
 	uint32_t be_data = rte_cpu_to_be_32(*u_int32_t_data);
 
-	rte_memcpy(u8_data, &be_data, sizeof(be_data));
+	memcpy(u8_data, &be_data, sizeof(be_data));
 }
 
 static void
@@ -283,8 +283,8 @@ zsda_decry_key_set(uint8_t key[64], const uint8_t *key1_ptr, uint8_t skey_len,
 				    : ZSDA_AES512_ROUND_NUM;
 		zsda_aes_key_expansion(aes_round_key, round_num, key1_ptr,
 				       skey_len);
-		rte_memcpy(dec_key1,
-			   ((uint8_t *)aes_round_key + (16 * round_num)), 16);
+		memcpy(dec_key1,
+		       ((uint8_t *)aes_round_key + (16 * round_num)), 16);
 
 		if (skey_len == ZSDA_SYM_XTS_512_SKEY_LEN &&
 			(16 * round_num) <= ZSDA_AES_MAX_EXP_BYTE_SIZE) {
diff --git a/lib/cryptodev/rte_cryptodev.c b/lib/cryptodev/rte_cryptodev.c
index 829a5d0846..cdbaf54e1e 100644
--- a/lib/cryptodev/rte_cryptodev.c
+++ b/lib/cryptodev/rte_cryptodev.c
@@ -16,7 +16,6 @@
 #include <rte_debug.h>
 #include <dev_driver.h>
 #include <rte_memory.h>
-#include <rte_memcpy.h>
 #include <rte_memzone.h>
 #include <rte_eal.h>
 #include <rte_common.h>
@@ -2566,8 +2565,7 @@ rte_cryptodev_sym_session_set_user_data(void *_sess, void *data,
 	if (sess->user_data_sz < size)
 		return -ENOMEM;
 
-	rte_memcpy(sess->driver_priv_data + sess->sess_data_sz, data, size);
-
+	memcpy(sess->driver_priv_data + sess->sess_data_sz, data, size);
 	rte_cryptodev_trace_sym_session_set_user_data(sess, data, size);
 
 	return 0;
@@ -2601,9 +2599,7 @@ rte_cryptodev_asym_session_set_user_data(void *session, void *data, uint16_t siz
 	if (sess->user_data_sz < size)
 		return -ENOMEM;
 
-	rte_memcpy(sess->sess_private_data +
-			sess->max_priv_data_sz,
-			data, size);
+	memcpy(sess->sess_private_data + sess->max_priv_data_sz, data, size);
 
 	rte_cryptodev_trace_asym_session_set_user_data(sess, data, size);
 
@@ -2750,7 +2746,7 @@ rte_cryptodev_session_event_mdata_set(uint8_t dev_id, void *sess,
 			if (s->event_mdata == NULL)
 				return -ENOMEM;
 		}
-		rte_memcpy(s->event_mdata, ev_mdata, size);
+		memcpy(s->event_mdata, ev_mdata, size);
 
 		return 0;
 	} else
@@ -3098,7 +3094,7 @@ crypto_caps_array(struct rte_tel_data *d,
 	while ((dev_caps = &capabilities[i++])->op !=
 			RTE_CRYPTO_OP_TYPE_UNDEFINED) {
 		memset(&caps_val, 0, CRYPTO_CAPS_SZ * sizeof(caps_val[0]));
-		rte_memcpy(caps_val, dev_caps, sizeof(capabilities[0]));
+		memcpy(caps_val, dev_caps, sizeof(capabilities[0]));
 		for (j = 0; j < CRYPTO_CAPS_SZ; j++)
 			rte_tel_data_add_array_uint(d, caps_val[j]);
 	}
-- 
2.53.0



More information about the dev mailing list