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
next prev 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).