DPDK patches and discussions
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>,
	Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>,
	Fan Zhang <fanzhang.oss@gmail.com>,
	Ashish Gupta <ashish.gupta@marvell.com>,
	Akhil Goyal <gakhil@marvell.com>,
	Anoob Joseph <anoobj@marvell.com>
Subject: [PATCH 31/32] test: replace memcpy with structure assignment
Date: Sat,  8 Feb 2025 12:22:23 -0800	[thread overview]
Message-ID: <20250208203142.242284-32-stephen@networkplumber.org> (raw)
In-Reply-To: <20250208203142.242284-1-stephen@networkplumber.org>

Prefer structure assignment over memcpy.
Found by struct-assign.cocci.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 app/test/test_acl.c                   |  5 ++--
 app/test/test_compressdev.c           | 36 +++++++++------------------
 app/test/test_security_inline_proto.c | 23 +++++++----------
 3 files changed, 23 insertions(+), 41 deletions(-)

diff --git a/app/test/test_acl.c b/app/test/test_acl.c
index 503ff08894..43d13b5b0f 100644
--- a/app/test/test_acl.c
+++ b/app/test/test_acl.c
@@ -1223,8 +1223,7 @@ test_create_find_add(void)
 
 	/* create dummy acl */
 	for (i = 0; i < LEN; i++) {
-		memcpy(&rules[i], &acl_rule,
-			sizeof(struct rte_acl_ipv4vlan_rule));
+		rules[i] = acl_rule;
 		/* skip zero */
 		rules[i].data.userdata = i + 1;
 		/* one rule per category */
@@ -1286,7 +1285,7 @@ test_invalid_rules(void)
 	 * such rules.
 	 */
 	/* create dummy acl */
-	memcpy(&rule, &acl_rule, sizeof(struct rte_acl_ipv4vlan_rule));
+	rule = acl_rule;
 	rule.data.userdata = 1;
 	rule.dst_port_low = 0xfff0;
 	rule.dst_port_high = 0x0010;
diff --git a/app/test/test_compressdev.c b/app/test/test_compressdev.c
index 81b8e02006..c217ad6cda 100644
--- a/app/test/test_compressdev.c
+++ b/app/test/test_compressdev.c
@@ -346,8 +346,7 @@ test_compressdev_invalid_configuration(void)
 	RTE_LOG(INFO, USER1, "This is a negative test, errors are expected\n");
 
 	/* Invalid configuration with 0 queue pairs */
-	memcpy(&invalid_config, &valid_config,
-			sizeof(struct rte_compressdev_config));
+	invalid_config = valid_config;
 	invalid_config.nb_queue_pairs = 0;
 
 	TEST_ASSERT_FAIL(rte_compressdev_configure(0, &invalid_config),
@@ -360,8 +359,7 @@ test_compressdev_invalid_configuration(void)
 	 */
 	rte_compressdev_info_get(0, &dev_info);
 	if (dev_info.max_nb_queue_pairs != 0) {
-		memcpy(&invalid_config, &valid_config,
-			sizeof(struct rte_compressdev_config));
+		invalid_config = valid_config;
 		invalid_config.nb_queue_pairs = dev_info.max_nb_queue_pairs + 1;
 
 		TEST_ASSERT_FAIL(rte_compressdev_configure(0, &invalid_config),
@@ -2188,8 +2186,7 @@ test_compressdev_deflate_stateless_fixed(void)
 		goto exit;
 	}
 
-	memcpy(compress_xform, ts_params->def_comp_xform,
-			sizeof(struct rte_comp_xform));
+	*compress_xform = *ts_params->def_comp_xform;
 	compress_xform->compress.deflate.huffman = RTE_COMP_HUFFMAN_FIXED;
 
 	struct interim_data_params int_data = {
@@ -2260,8 +2257,7 @@ test_compressdev_deflate_stateless_dynamic(void)
 		goto exit;
 	}
 
-	memcpy(compress_xform, ts_params->def_comp_xform,
-			sizeof(struct rte_comp_xform));
+	*compress_xform = *ts_params->def_comp_xform;
 	compress_xform->compress.deflate.huffman = RTE_COMP_HUFFMAN_DYNAMIC;
 
 	struct interim_data_params int_data = {
@@ -2372,8 +2368,7 @@ test_compressdev_deflate_stateless_multi_level(void)
 		goto exit;
 	}
 
-	memcpy(compress_xform, ts_params->def_comp_xform,
-			sizeof(struct rte_comp_xform));
+	*compress_xform = *ts_params->def_comp_xform;
 
 	struct interim_data_params int_data = {
 		NULL,
@@ -2442,8 +2437,7 @@ test_compressdev_deflate_stateless_multi_xform(void)
 			goto exit;
 		}
 
-		memcpy(compress_xforms[i], ts_params->def_comp_xform,
-				sizeof(struct rte_comp_xform));
+		*compress_xforms[i] = *ts_params->def_comp_xform;
 		compress_xforms[i]->compress.level = level;
 		level++;
 
@@ -2456,8 +2450,7 @@ test_compressdev_deflate_stateless_multi_xform(void)
 			goto exit;
 		}
 
-		memcpy(decompress_xforms[i], ts_params->def_decomp_xform,
-				sizeof(struct rte_comp_xform));
+		*decompress_xforms[i] = *ts_params->def_decomp_xform;
 	}
 
 	for (i = 0; i < NUM_XFORMS; i++) {
@@ -2614,8 +2607,7 @@ test_compressdev_deflate_stateless_checksum(void)
 		return TEST_FAILED;
 	}
 
-	memcpy(compress_xform, ts_params->def_comp_xform,
-			sizeof(struct rte_comp_xform));
+	*compress_xform = *ts_params->def_comp_xform;
 
 	struct rte_comp_xform *decompress_xform =
 			rte_malloc(NULL, sizeof(struct rte_comp_xform), 0);
@@ -2625,8 +2617,7 @@ test_compressdev_deflate_stateless_checksum(void)
 		return TEST_FAILED;
 	}
 
-	memcpy(decompress_xform, ts_params->def_decomp_xform,
-			sizeof(struct rte_comp_xform));
+	*decompress_xform = *ts_params->def_decomp_xform;
 
 	struct interim_data_params int_data = {
 		NULL,
@@ -2960,8 +2951,7 @@ test_compressdev_deflate_stateful_decomp_checksum(void)
 		return TEST_FAILED;
 	}
 
-	memcpy(compress_xform, ts_params->def_comp_xform,
-	       sizeof(struct rte_comp_xform));
+	*compress_xform = *ts_params->def_comp_xform;
 
 	struct rte_comp_xform *decompress_xform =
 			rte_malloc(NULL, sizeof(struct rte_comp_xform), 0);
@@ -2971,8 +2961,7 @@ test_compressdev_deflate_stateful_decomp_checksum(void)
 		return TEST_FAILED;
 	}
 
-	memcpy(decompress_xform, ts_params->def_decomp_xform,
-	       sizeof(struct rte_comp_xform));
+	*decompress_xform = *ts_params->def_decomp_xform;
 
 	struct interim_data_params int_data = {
 		&compress_test_bufs[0],
@@ -3186,8 +3175,7 @@ test_compressdev_deflate_stateless_fixed_oos_recoverable(void)
 		goto exit;
 	}
 
-	memcpy(compress_xform, ts_params->def_comp_xform,
-			sizeof(struct rte_comp_xform));
+	*compress_xform = *ts_params->def_comp_xform;
 	compress_xform->compress.deflate.huffman = RTE_COMP_HUFFMAN_FIXED;
 
 	struct interim_data_params int_data = {
diff --git a/app/test/test_security_inline_proto.c b/app/test/test_security_inline_proto.c
index 480469f672..04ecfd02c6 100644
--- a/app/test/test_security_inline_proto.c
+++ b/app/test/test_security_inline_proto.c
@@ -858,7 +858,7 @@ test_ipsec_with_rx_inject(struct ip_pkt_vector *vector, const struct ipsec_test_
 	burst_sz = vector->burst ? ENCAP_DECAP_BURST_SZ : 1;
 	nb_tx = burst_sz;
 
-	memcpy(&sa_data, vector->sa_data, sizeof(struct ipsec_test_data));
+	sa_data = *vector->sa_data;
 	sa_data.ipsec_xform.direction =	RTE_SECURITY_IPSEC_SA_DIR_EGRESS;
 	outer_ipv4 = is_outer_ipv4(&sa_data);
 
@@ -873,7 +873,7 @@ test_ipsec_with_rx_inject(struct ip_pkt_vector *vector, const struct ipsec_test_
 	}
 
 	for (i = 0; i < burst_sz; i++) {
-		memcpy(&sa_data, vector->sa_data, sizeof(struct ipsec_test_data));
+		sa_data = *vector->sa_data;
 		/* Update SPI for every new SA */
 		sa_data.ipsec_xform.spi += i;
 		sa_data.ipsec_xform.direction = RTE_SECURITY_IPSEC_SA_DIR_EGRESS;
@@ -901,7 +901,7 @@ test_ipsec_with_rx_inject(struct ip_pkt_vector *vector, const struct ipsec_test_
 	}
 
 	for (i = 0; i < burst_sz; i++) {
-		memcpy(&sa_data, vector->sa_data, sizeof(struct ipsec_test_data));
+		sa_data = *vector->sa_data;
 		/* Update SPI for every new SA */
 		sa_data.ipsec_xform.spi += i;
 		sa_data.ipsec_xform.direction = RTE_SECURITY_IPSEC_SA_DIR_INGRESS;
@@ -1078,7 +1078,7 @@ test_ipsec_with_reassembly(struct reassembly_vector *vector,
 	memset(tx_pkts_burst, 0, sizeof(tx_pkts_burst[0]) * nb_tx);
 	memset(rx_pkts_burst, 0, sizeof(rx_pkts_burst[0]) * nb_tx);
 
-	memcpy(&sa_data, vector->sa_data, sizeof(struct ipsec_test_data));
+	sa_data = *vector->sa_data;
 	sa_data.ipsec_xform.direction =	RTE_SECURITY_IPSEC_SA_DIR_EGRESS;
 	outer_ipv4 = is_outer_ipv4(&sa_data);
 
@@ -1096,8 +1096,7 @@ test_ipsec_with_reassembly(struct reassembly_vector *vector,
 	}
 
 	for (i = 0; i < burst_sz; i++) {
-		memcpy(&sa_data, vector->sa_data,
-				sizeof(struct ipsec_test_data));
+		sa_data = *vector->sa_data;
 		/* Update SPI for every new SA */
 		sa_data.ipsec_xform.spi += i;
 		sa_data.ipsec_xform.direction =
@@ -1132,8 +1131,7 @@ test_ipsec_with_reassembly(struct reassembly_vector *vector,
 	}
 
 	for (i = 0; i < burst_sz; i++) {
-		memcpy(&sa_data, vector->sa_data,
-				sizeof(struct ipsec_test_data));
+		sa_data = *vector->sa_data;
 		/* Update SPI for every new SA */
 		sa_data.ipsec_xform.spi += i;
 		sa_data.ipsec_xform.direction =
@@ -2371,13 +2369,11 @@ test_inline_ip_reassembly(const void *testdata)
 	reassembly_td.nb_frags = td->nb_frags;
 	reassembly_td.burst = td->burst;
 
-	memcpy(&full_pkt, td->full_pkt,
-			sizeof(struct ip_reassembly_test_packet));
+	full_pkt = *td->full_pkt;
 	reassembly_td.full_pkt = &full_pkt;
 
 	for (; i < reassembly_td.nb_frags; i++) {
-		memcpy(&frags[i], td->frags[i],
-			sizeof(struct ip_reassembly_test_packet));
+		frags[i] = *td->frags[i];
 		reassembly_td.frags[i] = &frags[i];
 
 		/* Add extra data for multi-seg test on all fragments except last one */
@@ -2466,8 +2462,7 @@ test_ipsec_inline_proto_rx_inj_inb(const void *test_data)
 	out_td.sa_data = td->sa_data;
 	out_td.burst = td->burst;
 
-	memcpy(&full_pkt, td->full_pkt,
-			sizeof(struct ip_reassembly_test_packet));
+	full_pkt = *td->full_pkt;
 	out_td.full_pkt = &full_pkt;
 
 	/* Add extra data for multi-seg test */
-- 
2.47.2


  parent reply	other threads:[~2025-02-08 20:34 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-08 20:21 [PATCH 00/32] Use structure assignment instead of memcpy Stephen Hemminger
2025-02-08 20:21 ` [PATCH 01/32] devtools/cocci: prefer structure assignment over memcpy Stephen Hemminger
2025-02-08 20:21 ` [PATCH 02/32] app/testpmd: replace memcpy with assignment Stephen Hemminger
2025-02-08 20:21 ` [PATCH 03/32] app/graph: replace memcpy with structure assignment Stephen Hemminger
2025-02-08 20:21 ` [PATCH 04/32] crypto/dpaa_sec: replace memcpy with assignment Stephen Hemminger
2025-02-08 20:21 ` [PATCH 05/32] dma/dpaa2: " Stephen Hemminger
2025-02-08 20:21 ` [PATCH 06/32] eventdev: " Stephen Hemminger
2025-02-08 20:21 ` [PATCH 07/32] event/dpaa2: replace memcpy with structure assignment Stephen Hemminger
2025-02-08 20:22 ` [PATCH 08/32] event/dsw: replace memcpy with assignment Stephen Hemminger
2025-02-08 20:22 ` [PATCH 09/32] ml/cnxk: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 10/32] examples: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 11/32] node: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 12/32] pipeline: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 13/32] sched: replace memcpy with structure assignment Stephen Hemminger
2025-02-08 20:22 ` [PATCH 14/32] table: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 15/32] net/ntnic: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 16/32] net/bnxt: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 17/32] crypto/qat: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 18/32] mempool/cnxk: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 19/32] net/dpaa2: replace memcpy with assignment Stephen Hemminger
2025-02-08 20:22 ` [PATCH 20/32] net/enic: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 21/32] net/intel/i40e: replace memcpy with structure assignment Stephen Hemminger
2025-02-08 20:22 ` [PATCH 22/32] net/nfp: replace memcpy with assignment Stephen Hemminger
2025-02-08 20:22 ` [PATCH 23/32] net/txgbe: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 24/32] net/bnx2x: replace memcpy with structure assignment Stephen Hemminger
2025-02-08 20:22 ` [PATCH 25/32] net/dpaa2: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 26/32] net/bonding: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 27/32] net/cnxk: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 28/32] net/enic: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 29/32] net/iavf: " Stephen Hemminger
2025-02-08 20:22 ` [PATCH 30/32] net/ice: " Stephen Hemminger
2025-02-08 20:22 ` Stephen Hemminger [this message]
2025-02-08 20:22 ` [PATCH 32/32] test/cryptodev: " Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250208203142.242284-32-stephen@networkplumber.org \
    --to=stephen@networkplumber.org \
    --cc=anoobj@marvell.com \
    --cc=ashish.gupta@marvell.com \
    --cc=dev@dpdk.org \
    --cc=fanzhang.oss@gmail.com \
    --cc=gakhil@marvell.com \
    --cc=konstantin.v.ananyev@yandex.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).