DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>,
	Jie Liu <liujie5@linkdatatechnology.com>
Subject: [PATCH 44/61] net/sxe2: replace use of rte_memcpy
Date: Wed, 19 Aug 2026 22:12:34 -0700	[thread overview]
Message-ID: <20260820052251.1453273-45-stephen@networkplumber.org> (raw)
In-Reply-To: <20260820052251.1453273-1-stephen@networkplumber.org>

The uses of rte_memcpy() in the sxe2 driver are all in the control
path. Regular memcpy() has no performance disadvantage there
and gets more compile time checking of the arguments.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/sxe2/sxe2_cmd_chnl.c           |  6 ++--
 drivers/net/sxe2/sxe2_flow.c               | 11 +++----
 drivers/net/sxe2/sxe2_flow_parse_pattern.c | 36 ++++++++++++----------
 drivers/net/sxe2/sxe2_ipsec.c              |  2 +-
 drivers/net/sxe2/sxe2_rss.c                | 10 +++---
 drivers/net/sxe2/sxe2_rx.c                 |  4 +--
 drivers/net/sxe2/sxe2_stats.c              | 25 +++++++--------
 drivers/net/sxe2/sxe2_tm.c                 |  4 +--
 8 files changed, 51 insertions(+), 47 deletions(-)

diff --git a/drivers/net/sxe2/sxe2_cmd_chnl.c b/drivers/net/sxe2/sxe2_cmd_chnl.c
index b09989fe50..077e4f8c01 100644
--- a/drivers/net/sxe2/sxe2_cmd_chnl.c
+++ b/drivers/net/sxe2/sxe2_cmd_chnl.c
@@ -961,7 +961,7 @@ int32_t sxe2_drv_rss_key_set(struct sxe2_adapter *adapter, uint8_t *key, uint16_
 
 	req->vsi_id = rte_cpu_to_le_16(adapter->vsi_ctxt.dpdk_vsi_id);
 	req->key_size = rte_cpu_to_le_16(key_size);
-	rte_memcpy(req->key, key, key_size);
+	memcpy(req->key, key, key_size);
 
 	sxe2_drv_cmd_params_fill(adapter, &param, SXE2_DRV_CMD_RSS_KEY_SET,
 				 req, buf_size,
@@ -998,7 +998,7 @@ int32_t sxe2_drv_rss_lut_set(struct sxe2_adapter *adapter, uint8_t *lut, uint16_
 
 	req->vsi_id = rte_cpu_to_le_16(adapter->vsi_ctxt.dpdk_vsi_id);
 	req->lut_size = rte_cpu_to_le_16(lut_size);
-	rte_memcpy(req->lut, lut, lut_size);
+	memcpy(req->lut, lut, lut_size);
 
 	sxe2_drv_cmd_params_fill(adapter, &param, SXE2_DRV_CMD_RSS_LUT_SET,
 				 req, buf_size,
@@ -1890,7 +1890,7 @@ int32_t sxe2_drv_sfp_eeprom_read(struct sxe2_adapter *adapter, struct sxe2_sfp_r
 	}
 
 	ret = 0;
-	rte_memcpy(sfp_info->data, resp->data, sfp_info->len);
+	memcpy(sfp_info->data, resp->data, sfp_info->len);
 
 l_end:
 	if (resp) {
diff --git a/drivers/net/sxe2/sxe2_flow.c b/drivers/net/sxe2/sxe2_flow.c
index 63cfc36968..84669478d1 100644
--- a/drivers/net/sxe2/sxe2_flow.c
+++ b/drivers/net/sxe2/sxe2_flow.c
@@ -80,8 +80,8 @@ static int32_t sxe2_flow_check_hdr_duplicate(struct sxe2_flow_item *item_new,
 	uint16_t size = sizeof(struct sxe2_flow_item);
 	union sxe2_flow_item_raw item_raw_new;
 	union sxe2_flow_item_raw item_raw_exist;
-	rte_memcpy(&item_raw_new.item, item_new, size);
-	rte_memcpy(&item_raw_exist.item, item_exist, size);
+	memcpy(&item_raw_new.item, item_new, size);
+	memcpy(&item_raw_exist.item, item_exist, size);
 
 	for (i = 0; i < size; i++) {
 		if (item_raw_new.raw[i] != item_raw_exist.raw[i])
@@ -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_flow_parse_pattern.c b/drivers/net/sxe2/sxe2_flow_parse_pattern.c
index f5bf8922c6..d5a14398a7 100644
--- a/drivers/net/sxe2/sxe2_flow_parse_pattern.c
+++ b/drivers/net/sxe2/sxe2_flow_parse_pattern.c
@@ -787,20 +787,20 @@ static int32_t sxe2_flow_parse_pattern_eth(const struct rte_flow_item *item,
 			sxe2_set_bit(SXE2_FLOW_FLD_ID_ETH_DA, pattern->map_mask);
 
 		sxe2_set_bit(SXE2_FLOW_FLD_ID_ETH_DA, pattern->map_spec);
-		rte_memcpy(pattern->item_spec.eth.dst_addr, dst_addr_spec,
-			RTE_ETHER_ADDR_LEN);
-		rte_memcpy(pattern->item_mask.eth.dst_addr, dst_addr_mask,
-			RTE_ETHER_ADDR_LEN);
+		memcpy(pattern->item_spec.eth.dst_addr, dst_addr_spec,
+		       RTE_ETHER_ADDR_LEN);
+		memcpy(pattern->item_mask.eth.dst_addr, dst_addr_mask,
+		       RTE_ETHER_ADDR_LEN);
 	}
 	if (!rte_is_zero_ether_addr(src_addr_mask)) {
 		if (!rte_is_broadcast_ether_addr(src_addr_mask))
 			sxe2_set_bit(SXE2_FLOW_FLD_ID_ETH_SA, pattern->map_mask);
 
 		sxe2_set_bit(SXE2_FLOW_FLD_ID_ETH_SA, pattern->map_spec);
-		rte_memcpy(pattern->item_spec.eth.src_addr, src_addr_spec,
-			RTE_ETHER_ADDR_LEN);
-		rte_memcpy(pattern->item_mask.eth.src_addr, src_addr_mask,
-			RTE_ETHER_ADDR_LEN);
+		memcpy(pattern->item_spec.eth.src_addr, src_addr_spec,
+		       RTE_ETHER_ADDR_LEN);
+		memcpy(pattern->item_mask.eth.src_addr, src_addr_mask,
+		       RTE_ETHER_ADDR_LEN);
 	}
 	if (type_mask != 0) {
 		if (type_mask != UINT16_MAX) {
@@ -1130,10 +1130,12 @@ static int32_t sxe2_flow_parse_pattern_ipv6(const struct rte_flow_item *item,
 			   sizeof(ipv6_addr_mask)) != 0)
 			sxe2_set_bit(SXE2_FLOW_FLD_ID_IPV6_SA, pattern->map_mask);
 		sxe2_set_bit(SXE2_FLOW_FLD_ID_IPV6_SA, pattern->map_spec);
-		rte_memcpy(&pattern->item_spec.ipv6.saddr, &ipv6_spec->hdr.src_addr,
-			   sizeof(ipv6_spec->hdr.src_addr));
-		rte_memcpy(&pattern->item_mask.ipv6.saddr, &ipv6_mask->hdr.src_addr,
-			   sizeof(ipv6_mask->hdr.src_addr));
+		memcpy(&pattern->item_spec.ipv6.saddr,
+		       &ipv6_spec->hdr.src_addr,
+		       sizeof(ipv6_spec->hdr.src_addr));
+		memcpy(&pattern->item_mask.ipv6.saddr,
+		       &ipv6_mask->hdr.src_addr,
+		       sizeof(ipv6_mask->hdr.src_addr));
 	}
 	if (memcmp(&ipv6_mask->hdr.dst_addr, ipv6_addr_empty,
 		    sizeof(ipv6_addr_empty)) != 0) {
@@ -1141,10 +1143,12 @@ static int32_t sxe2_flow_parse_pattern_ipv6(const struct rte_flow_item *item,
 			   sizeof(ipv6_addr_mask)) != 0)
 			sxe2_set_bit(SXE2_FLOW_FLD_ID_IPV6_DA, pattern->map_mask);
 		sxe2_set_bit(SXE2_FLOW_FLD_ID_IPV6_DA, pattern->map_spec);
-		rte_memcpy(&pattern->item_spec.ipv6.daddr, &ipv6_spec->hdr.dst_addr,
-			   sizeof(ipv6_spec->hdr.dst_addr));
-		rte_memcpy(&pattern->item_mask.ipv6.daddr, &ipv6_mask->hdr.dst_addr,
-			   sizeof(ipv6_mask->hdr.dst_addr));
+		memcpy(&pattern->item_spec.ipv6.daddr,
+		       &ipv6_spec->hdr.dst_addr,
+		       sizeof(ipv6_spec->hdr.dst_addr));
+		memcpy(&pattern->item_mask.ipv6.daddr,
+		       &ipv6_mask->hdr.dst_addr,
+		       sizeof(ipv6_mask->hdr.dst_addr));
 	}
 	if (ipv6_mask->hdr.vtc_flow) {
 		vtc_flow_mask = rte_be_to_cpu_32(ipv6_mask->hdr.vtc_flow);
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,
diff --git a/drivers/net/sxe2/sxe2_rss.c b/drivers/net/sxe2/sxe2_rss.c
index 1d56613043..6451096561 100644
--- a/drivers/net/sxe2/sxe2_rss.c
+++ b/drivers/net/sxe2/sxe2_rss.c
@@ -35,7 +35,7 @@ int32_t sxe2_rss_hash_key_init(struct rte_eth_dev *dev)
 		for (i = 0; i < rss_ctxt->rss_key_size; i++)
 			rss_ctxt->rss_key[i] = (uint8_t)rte_rand();
 	} else {
-		rte_memcpy(rss_ctxt->rss_key, rss_conf->rss_key,
+		memcpy(rss_ctxt->rss_key, rss_conf->rss_key,
 			   RTE_MIN(rss_conf->rss_key_len, rss_ctxt->rss_key_size));
 	}
 
@@ -421,7 +421,7 @@ int32_t sxe2_dev_rss_reta_update(struct rte_eth_dev *dev,
 		ret = -ENOMEM;
 		goto l_end;
 	}
-	rte_memcpy(lut_tmp, rss_ctxt->rss_lut, reta_size);
+	memcpy(lut_tmp, rss_ctxt->rss_lut, reta_size);
 
 	for (i = 0; i < reta_size; i++) {
 		idx = i / RTE_ETH_RETA_GROUP_SIZE;
@@ -436,7 +436,7 @@ int32_t sxe2_dev_rss_reta_update(struct rte_eth_dev *dev,
 		goto l_end;
 	}
 
-	rte_memcpy(rss_ctxt->rss_lut, lut_tmp, reta_size);
+	memcpy(rss_ctxt->rss_lut, lut_tmp, reta_size);
 
 l_end:
 	if (lut_tmp)
@@ -514,7 +514,7 @@ static int32_t sxe2_rss_hash_key_update(struct rte_eth_dev *dev,
 		goto l_end;
 	}
 
-	rte_memcpy(rss_ctxt->rss_key, rss_conf->rss_key, rss_conf->rss_key_len);
+	memcpy(rss_ctxt->rss_key, rss_conf->rss_key, rss_conf->rss_key_len);
 l_end:
 	return ret;
 }
@@ -575,7 +575,7 @@ int32_t sxe2_dev_rss_hash_conf_get(struct rte_eth_dev *dev,
 
 	if (rss_conf->rss_key) {
 		rss_conf->rss_key_len = rss_ctxt->rss_key_size;
-		rte_memcpy(rss_conf->rss_key, rss_ctxt->rss_key, rss_ctxt->rss_key_size);
+		memcpy(rss_conf->rss_key, rss_ctxt->rss_key, rss_ctxt->rss_key_size);
 	}
 	rss_conf->rss_hf = rss_ctxt->rss_hf;
 	rss_conf->algorithm = rss_ctxt->hash_func;
diff --git a/drivers/net/sxe2/sxe2_rx.c b/drivers/net/sxe2/sxe2_rx.c
index d700c60083..c84e767b25 100644
--- a/drivers/net/sxe2/sxe2_rx.c
+++ b/drivers/net/sxe2/sxe2_rx.c
@@ -311,8 +311,8 @@ int32_t __rte_cold sxe2_rx_queue_setup(struct rte_eth_dev *dev,
 
 	if (rx_nseg > 1) {
 		for (i = 0; i < rx_nseg; i++) {
-			rte_memcpy(&rxq->rx_seg[i], &rx_conf->rx_seg[i].split,
-					sizeof(struct rte_eth_rxseg_split));
+			memcpy(&rxq->rx_seg[i], &rx_conf->rx_seg[i].split,
+			       sizeof(struct rte_eth_rxseg_split));
 		}
 		rxq->mb_pool = rxq->rx_seg[0].mp;
 	} else {
diff --git a/drivers/net/sxe2/sxe2_stats.c b/drivers/net/sxe2/sxe2_stats.c
index 3ad8fe2fe9..6dc52ac4ab 100644
--- a/drivers/net/sxe2/sxe2_stats.c
+++ b/drivers/net/sxe2/sxe2_stats.c
@@ -288,18 +288,19 @@ static void sxe2_stats_update(struct sxe2_adapter *adapter)
 		stats->rx_frame_good_bad = hw_stats->rx_frame_good_bad;
 		stats->rx_unicast_good = hw_stats->rx_unicast_good;
 		stats->rx_vlan_packets = hw_stats->rx_vlan_packets;
-		rte_memcpy(stats->rx_prio_buf_discard, hw_stats->rx_prio_buf_discard,
-				sizeof(hw_stats->rx_prio_buf_discard));
-		rte_memcpy(stats->prio_xoff_rx, hw_stats->prio_xoff_rx,
-				sizeof(hw_stats->prio_xoff_rx));
-		rte_memcpy(stats->prio_xon_rx, hw_stats->prio_xon_rx,
-				sizeof(hw_stats->prio_xon_rx));
-		rte_memcpy(stats->prio_xon_tx, hw_stats->prio_xon_tx,
-				sizeof(hw_stats->prio_xon_tx));
-		rte_memcpy(stats->prio_xoff_tx, hw_stats->prio_xoff_tx,
-				sizeof(hw_stats->prio_xoff_tx));
-		rte_memcpy(stats->prio_xon_2_xoff, hw_stats->prio_xon_2_xoff,
-				sizeof(hw_stats->prio_xon_2_xoff));
+		memcpy(stats->rx_prio_buf_discard,
+		       hw_stats->rx_prio_buf_discard,
+		       sizeof(hw_stats->rx_prio_buf_discard));
+		memcpy(stats->prio_xoff_rx, hw_stats->prio_xoff_rx,
+		       sizeof(hw_stats->prio_xoff_rx));
+		memcpy(stats->prio_xon_rx, hw_stats->prio_xon_rx,
+		       sizeof(hw_stats->prio_xon_rx));
+		memcpy(stats->prio_xon_tx, hw_stats->prio_xon_tx,
+		       sizeof(hw_stats->prio_xon_tx));
+		memcpy(stats->prio_xoff_tx, hw_stats->prio_xoff_tx,
+		       sizeof(hw_stats->prio_xoff_tx));
+		memcpy(stats->prio_xon_2_xoff, hw_stats->prio_xon_2_xoff,
+		       sizeof(hw_stats->prio_xon_2_xoff));
 
 		stats->imissed = hw_stats->rx_out_of_buffer +
 				hw_stats->rx_qblock_drop;
diff --git a/drivers/net/sxe2/sxe2_tm.c b/drivers/net/sxe2/sxe2_tm.c
index 4c4f793cd5..893e1afa6d 100644
--- a/drivers/net/sxe2/sxe2_tm.c
+++ b/drivers/net/sxe2/sxe2_tm.c
@@ -421,8 +421,8 @@ static int32_t sxe2_tm_shaper_profile_add(struct rte_eth_dev *dev, uint32_t shap
 		goto l_end;
 	}
 
-	rte_memcpy(&shaper_profile->profile, profile,
-					sizeof(struct rte_tm_shaper_params));
+	memcpy(&shaper_profile->profile, profile,
+	       sizeof(struct rte_tm_shaper_params));
 	shaper_profile->id = shaper_profile_id;
 
 	TAILQ_INSERT_TAIL(&adapter->tm_ctxt.profile_list, shaper_profile, node);
-- 
2.53.0


  parent reply	other threads:[~2026-08-20  5:27 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-20  5:11 [PATCH 00/61] reduce use of rte_memcpy Stephen Hemminger
2026-08-20  5:11 ` [PATCH 01/61] devtools/cocci: add script to replace fixed size rte_memcpy Stephen Hemminger
2026-08-20  5:11 ` [PATCH 02/61] app/testpmd: replace rte_memcpy with memcpy Stephen Hemminger
2026-08-20  5:11 ` [PATCH 03/61] test: use memcpy instead of rte_memcpy Stephen Hemminger
2026-08-20  6:22   ` Morten Brørup
2026-08-20  5:11 ` [PATCH 04/61] app/graph: replace rte_memcpy with memcpy Stephen Hemminger
2026-08-20  5:11 ` [PATCH 05/61] lpm: remove unnecessary include of rte_memcpy.h Stephen Hemminger
2026-08-20  5:11 ` [PATCH 06/61] acl: " Stephen Hemminger
2026-08-20  5:11 ` [PATCH 07/61] drivers/bus: " Stephen Hemminger
2026-08-20  5:11 ` [PATCH 08/61] security: replace fixed size rte_memcpy Stephen Hemminger
2026-08-20  5:11 ` [PATCH 09/61] ethdev: replace use of rte_memcpy Stephen Hemminger
2026-08-20  5:12 ` [PATCH 10/61] net: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 11/61] pdcp: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 12/61] eventdev: replace fixed size rte_memcpy Stephen Hemminger
2026-08-20  5:12 ` [PATCH 13/61] eal: replace rte_memcpy of cpuset Stephen Hemminger
2026-08-20  5:12 ` [PATCH 14/61] cryptodev: replace use of rte_memcpy Stephen Hemminger
2026-08-20  5:12 ` [PATCH 15/61] drivers/raw: use memcpy for fixed size data Stephen Hemminger
2026-08-20  5:12 ` [PATCH 16/61] test-pipeline: replace use of rte_memcpy Stephen Hemminger
2026-08-20  5:12 ` [PATCH 17/61] net/af_xdp: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 18/61] net/avp: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 19/61] net/axgbe: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 20/61] net/bnx2x: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 21/61] net/bnxt: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 22/61] net/bonding: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 23/61] net/cnxk: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 24/61] net/cxgbe: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 25/61] net/dpaa2: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 26/61] net/enic: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 27/61] net/failsafe: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 28/61] net/gve: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 29/61] net/hinic: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 30/61] net/hns3: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 31/61] net/mlx5: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 32/61] net/mvpp2: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 33/61] net/netvsc: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 34/61] net/nfp: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 35/61] net/ngbe: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 36/61] net/ntnic: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 37/61] net/null: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 38/61] net/qede: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 39/61] net/ring: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 40/61] net/sfc: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 41/61] net/txgbe: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 42/61] net/vhost: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 43/61] net/virtio: " Stephen Hemminger
2026-08-20  5:12 ` Stephen Hemminger [this message]
2026-08-20  5:12 ` [PATCH 45/61] net/zxdh: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 46/61] net/memif: use memcpy for fixed size data Stephen Hemminger
2026-08-20  5:12 ` [PATCH 47/61] net/ice: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 48/61] test-bbdev: remove unnecessary include rte_memcpy.h Stephen Hemminger
2026-08-20  5:12 ` [PATCH 49/61] drivers/mempool: use memcpy for fixed size data Stephen Hemminger
2026-08-20  5:12 ` [PATCH 50/61] ml/cnxk: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 51/61] drivers/event: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 52/61] baseband/la12xx: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 53/61] baseband/acc: replace use of rte_memcpy Stephen Hemminger
2026-08-20  5:12 ` [PATCH 54/61] drivers/*/qat: use memcpy for fixed size data Stephen Hemminger
2026-08-20  5:12 ` [PATCH 55/61] hash: replace use of rte_memcpy Stephen Hemminger
2026-08-20  5:12 ` [PATCH 56/61] rib: remove rte_memcpy include Stephen Hemminger
2026-08-20  5:12 ` [PATCH 57/61] pcapng: replace use of rte_memcpy Stephen Hemminger
2026-08-20  5:12 ` [PATCH 58/61] efd: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 59/61] net/xsc: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 60/61] net/pcap: " Stephen Hemminger
2026-08-20  5:12 ` [PATCH 61/61] power: " Stephen Hemminger
2026-08-20  7:31 ` [PATCH 00/61] reduce " Morten Brørup
2026-08-20  8:16   ` Bruce Richardson

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=20260820052251.1453273-45-stephen@networkplumber.org \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    --cc=liujie5@linkdatatechnology.com \
    /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