* [PATCH 1/2] net/sxe2: replace memcpy with structure assignment @ 2026-07-28 14:37 Stephen Hemminger 2026-07-28 14:38 ` [PATCH 2/2] net/ixgbe: " Stephen Hemminger 0 siblings, 1 reply; 4+ messages in thread From: Stephen Hemminger @ 2026-07-28 14:37 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Jie Liu When possible prefer structure assigment over untyped memcpy. Found by cocci/struct-assign.cocci script. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/sxe2/sxe2_flow.c | 7 +++---- drivers/net/sxe2/sxe2_ipsec.c | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/net/sxe2/sxe2_flow.c b/drivers/net/sxe2/sxe2_flow.c index 63cfc36968..6c2e743f30 100644 --- a/drivers/net/sxe2/sxe2_flow.c +++ b/drivers/net/sxe2/sxe2_flow.c @@ -416,7 +416,7 @@ static int32_t sxe2_flow_src_split_proc(struct rte_eth_dev *dev, ret = -ENOMEM; goto l_end; } - rte_memcpy(flow_new, flow, sizeof(struct sxe2_flow)); + *flow_new = *flow; TAILQ_INSERT_TAIL(sxe2_flow_list, flow_new, next); flow_new->meta.flow_src_vsi = flow_src_vsi[SXE2_MAX_DRV_TYPE_DPDK][idx]; @@ -437,7 +437,7 @@ static int32_t sxe2_flow_src_split_proc(struct rte_eth_dev *dev, ret = -ENOMEM; goto l_end; } - rte_memcpy(flow_new, flow, sizeof(struct sxe2_flow)); + *flow_new = *flow; TAILQ_INSERT_TAIL(sxe2_flow_list, flow_new, next); flow_new->meta.flow_src_vsi = flow_src_vsi[SXE2_MAX_DRV_TYPE_KERNEL][idx]; @@ -697,8 +697,7 @@ static int32_t sxe2_flow_tunnel_split_proc(struct rte_eth_dev *dev __rte_unused, ret = -ENOMEM; goto l_end; } - rte_memcpy(sxe2_flow_new, sxe2_flow_exist, - sizeof(struct sxe2_flow)); + *sxe2_flow_new = *sxe2_flow_exist; pattern = &sxe2_flow_new->pattern_outer; sxe2_flow_new->meta.tunnel_type = SXE2_FLOW_TUNNEL_TYPE_GRE; diff --git a/drivers/net/sxe2/sxe2_ipsec.c b/drivers/net/sxe2/sxe2_ipsec.c index e783a51b85..81cf250fd2 100644 --- a/drivers/net/sxe2/sxe2_ipsec.c +++ b/drivers/net/sxe2/sxe2_ipsec.c @@ -1159,7 +1159,7 @@ int sxe2_ipsec_pkt_metadata_set(void *device, struct rte_security_session *sessi md = RTE_MBUF_DYNFIELD(m, sxe2_sctx->ipsec_ctx.md_offset, struct sxe2_ipsec_pkt_metadata *); - memcpy(md, &sxe2_sess->pkt_metadata_template, sizeof(struct sxe2_ipsec_pkt_metadata)); + *md = sxe2_sess->pkt_metadata_template; md->esp_head_offset = offset; PMD_LOG_INFO(DRV, "ipsec metadata set, offset:%u, said:%u, mode:%u, algo:%u.", offset, -- 2.53.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] net/ixgbe: replace memcpy with structure assignment 2026-07-28 14:37 [PATCH 1/2] net/sxe2: replace memcpy with structure assignment Stephen Hemminger @ 2026-07-28 14:38 ` Stephen Hemminger 2026-08-13 11:58 ` Bruce Richardson 0 siblings, 1 reply; 4+ messages in thread From: Stephen Hemminger @ 2026-07-28 14:38 UTC (permalink / raw) To: dev; +Cc: Stephen Hemminger, Anatoly Burakov, Vladimir Medvedkin Where possible use structure assignment instead of memcpy to preserve type checking. Found by cocci/struct-assign.cocci. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> --- drivers/net/intel/ixgbe/ixgbe_flow.c | 39 +++++++--------------------- 1 file changed, 10 insertions(+), 29 deletions(-) diff --git a/drivers/net/intel/ixgbe/ixgbe_flow.c b/drivers/net/intel/ixgbe/ixgbe_flow.c index 6868893d46..7f1241951f 100644 --- a/drivers/net/intel/ixgbe/ixgbe_flow.c +++ b/drivers/net/intel/ixgbe/ixgbe_flow.c @@ -2866,9 +2866,7 @@ ixgbe_flow_create(struct rte_eth_dev *dev, PMD_DRV_LOG(ERR, "failed to allocate memory"); goto out; } - memcpy(&ntuple_filter_ptr->filter_info, - &ntuple_filter, - sizeof(struct rte_eth_ntuple_filter)); + ntuple_filter_ptr->filter_info = ntuple_filter; flow->rule = ntuple_filter_ptr; flow->filter_type = RTE_ETH_FILTER_NTUPLE; return flow; @@ -2890,9 +2888,7 @@ ixgbe_flow_create(struct rte_eth_dev *dev, PMD_DRV_LOG(ERR, "failed to allocate memory"); goto out; } - memcpy(ðertype_filter_ptr->filter_info, - ðertype_filter, - sizeof(struct rte_eth_ethertype_filter)); + ethertype_filter_ptr->filter_info = ethertype_filter; flow->rule = ethertype_filter_ptr; flow->filter_type = RTE_ETH_FILTER_ETHERTYPE; return flow; @@ -2912,9 +2908,7 @@ ixgbe_flow_create(struct rte_eth_dev *dev, PMD_DRV_LOG(ERR, "failed to allocate memory"); goto out; } - memcpy(&syn_filter_ptr->filter_info, - &syn_filter, - sizeof(struct rte_eth_syn_filter)); + syn_filter_ptr->filter_info = syn_filter; flow->rule = syn_filter_ptr; flow->filter_type = RTE_ETH_FILTER_SYN; return flow; @@ -2949,9 +2943,7 @@ ixgbe_flow_create(struct rte_eth_dev *dev, fdir_info->n_flows++; fdir_conf->mode = fdir_rule.mode; - memcpy(&fdir_rule_ptr->filter_info, - &fdir_rule, - sizeof(struct ixgbe_fdir_rule)); + fdir_rule_ptr->filter_info = fdir_rule; flow->rule = fdir_rule_ptr; flow->filter_type = RTE_ETH_FILTER_FDIR; return flow; @@ -2969,9 +2961,7 @@ ixgbe_flow_create(struct rte_eth_dev *dev, PMD_DRV_LOG(ERR, "failed to allocate memory"); goto out; } - memcpy(&l2_tn_filter_ptr->filter_info, - &l2_tn_filter, - sizeof(struct ixgbe_l2_tunnel_conf)); + l2_tn_filter_ptr->filter_info = l2_tn_filter; flow->rule = l2_tn_filter_ptr; flow->filter_type = RTE_ETH_FILTER_L2_TUNNEL; return flow; @@ -3124,9 +3114,7 @@ ixgbe_flow_destroy(struct rte_eth_dev *dev, case RTE_ETH_FILTER_NTUPLE: ntuple_filter_ptr = (struct ixgbe_ntuple_filter_ele *) pmd_flow->rule; - memcpy(&ntuple_filter, - &ntuple_filter_ptr->filter_info, - sizeof(struct rte_eth_ntuple_filter)); + ntuple_filter = ntuple_filter_ptr->filter_info; ret = ixgbe_add_del_ntuple_filter(adapter, &ntuple_filter, FALSE); if (!ret) rte_free(ntuple_filter_ptr); @@ -3134,9 +3122,7 @@ ixgbe_flow_destroy(struct rte_eth_dev *dev, case RTE_ETH_FILTER_ETHERTYPE: ethertype_filter_ptr = (struct ixgbe_ethertype_filter_ele *) pmd_flow->rule; - memcpy(ðertype_filter, - ðertype_filter_ptr->filter_info, - sizeof(struct rte_eth_ethertype_filter)); + ethertype_filter = ethertype_filter_ptr->filter_info; ret = ixgbe_add_del_ethertype_filter(adapter, ðertype_filter, FALSE); if (!ret) @@ -3145,18 +3131,14 @@ ixgbe_flow_destroy(struct rte_eth_dev *dev, case RTE_ETH_FILTER_SYN: syn_filter_ptr = (struct ixgbe_eth_syn_filter_ele *) pmd_flow->rule; - memcpy(&syn_filter, - &syn_filter_ptr->filter_info, - sizeof(struct rte_eth_syn_filter)); + syn_filter = syn_filter_ptr->filter_info; ret = ixgbe_syn_filter_set(adapter, &syn_filter, FALSE); if (!ret) rte_free(syn_filter_ptr); break; case RTE_ETH_FILTER_FDIR: fdir_rule_ptr = (struct ixgbe_fdir_rule_ele *)pmd_flow->rule; - memcpy(&fdir_rule, - &fdir_rule_ptr->filter_info, - sizeof(struct ixgbe_fdir_rule)); + fdir_rule = fdir_rule_ptr->filter_info; ret = ixgbe_fdir_filter_program(adapter, fdir_conf, &fdir_rule, TRUE, FALSE); if (!ret) { rte_free(fdir_rule_ptr); @@ -3171,8 +3153,7 @@ ixgbe_flow_destroy(struct rte_eth_dev *dev, case RTE_ETH_FILTER_L2_TUNNEL: l2_tn_filter_ptr = (struct ixgbe_eth_l2_tunnel_conf_ele *) pmd_flow->rule; - memcpy(&l2_tn_filter, &l2_tn_filter_ptr->filter_info, - sizeof(struct ixgbe_l2_tunnel_conf)); + l2_tn_filter = l2_tn_filter_ptr->filter_info; ret = ixgbe_dev_l2_tunnel_filter_del(adapter, &l2_tn_filter); if (!ret) rte_free(l2_tn_filter_ptr); -- 2.53.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] net/ixgbe: replace memcpy with structure assignment 2026-07-28 14:38 ` [PATCH 2/2] net/ixgbe: " Stephen Hemminger @ 2026-08-13 11:58 ` Bruce Richardson 2026-08-13 14:29 ` Bruce Richardson 0 siblings, 1 reply; 4+ messages in thread From: Bruce Richardson @ 2026-08-13 11:58 UTC (permalink / raw) To: Stephen Hemminger; +Cc: dev, Anatoly Burakov, Vladimir Medvedkin On Tue, Jul 28, 2026 at 07:38:00AM -0700, Stephen Hemminger wrote: > Where possible use structure assignment instead of memcpy > to preserve type checking. Found by cocci/struct-assign.cocci. > > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> > --- > drivers/net/intel/ixgbe/ixgbe_flow.c | 39 +++++++--------------------- > 1 file changed, 10 insertions(+), 29 deletions(-) > Acked-by: Bruce Richardson <bruce.richardson@intel.com> ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] net/ixgbe: replace memcpy with structure assignment 2026-08-13 11:58 ` Bruce Richardson @ 2026-08-13 14:29 ` Bruce Richardson 0 siblings, 0 replies; 4+ messages in thread From: Bruce Richardson @ 2026-08-13 14:29 UTC (permalink / raw) To: Stephen Hemminger; +Cc: dev, Anatoly Burakov, Vladimir Medvedkin On Thu, Aug 13, 2026 at 12:58:37PM +0100, Bruce Richardson wrote: > On Tue, Jul 28, 2026 at 07:38:00AM -0700, Stephen Hemminger wrote: > > Where possible use structure assignment instead of memcpy > > to preserve type checking. Found by cocci/struct-assign.cocci. > > > > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> > > --- > > drivers/net/intel/ixgbe/ixgbe_flow.c | 39 +++++++--------------------- > > 1 file changed, 10 insertions(+), 29 deletions(-) > > > Acked-by: Bruce Richardson <bruce.richardson@intel.com> > Applied (this patch only) to next-net-intel. Thanks, /Bruce ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-08-13 14:30 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-07-28 14:37 [PATCH 1/2] net/sxe2: replace memcpy with structure assignment Stephen Hemminger 2026-07-28 14:38 ` [PATCH 2/2] net/ixgbe: " Stephen Hemminger 2026-08-13 11:58 ` Bruce Richardson 2026-08-13 14:29 ` Bruce Richardson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox