[PATCH v2 1/3] net/axgbe: reset the end of packet in scattered rx

Namburu, Chandu-babu chandu at amd.com
Thu Sep 8 15:56:35 CEST 2022


[Public]

For the series,
Acked-by: Chandubabu Namburu <chandu at amd.com>

-----Original Message-----
From: Modali, Bhagyada <Bhagyada.Modali at amd.com> 
Sent: Thursday, September 8, 2022 9:01 AM
To: Namburu, Chandu-babu <chandu at amd.com>; Yigit, Ferruh <Ferruh.Yigit at amd.com>
Cc: dev at dpdk.org; stable at dpdk.org; Modali, Bhagyada <Bhagyada.Modali at amd.com>
Subject: [PATCH v2 1/3] net/axgbe: reset the end of packet in scattered rx

Reset the eop in the failure scenario and also after the last segment.
Removed the packet length updation explicitly as it is done in Chaining.

Fixes: 965b3127d425 ("net/axgbe: support scattered Rx")
Cc: stable at dpdk.org

Signed-off-by: Bhagyada Modali <bhagyada.modali at amd.com>
---
 drivers/net/axgbe/axgbe_rxtx.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/net/axgbe/axgbe_rxtx.c b/drivers/net/axgbe/axgbe_rxtx.c index 8b43e8160b..e1488483bc 100644
--- a/drivers/net/axgbe/axgbe_rxtx.c
+++ b/drivers/net/axgbe/axgbe_rxtx.c
@@ -346,10 +346,11 @@ uint16_t eth_axgbe_recv_scattered_pkts(void *rx_queue,
 	uint32_t error_status = 0;
 	uint16_t idx, pidx, data_len = 0, pkt_len = 0;
 	uint64_t offloads;
+	bool eop = 0;
 
 	idx = AXGBE_GET_DESC_IDX(rxq, rxq->cur);
+
 	while (nb_rx < nb_pkts) {
-		bool eop = 0;
 next_desc:
 		idx = AXGBE_GET_DESC_IDX(rxq, rxq->cur);
 
@@ -416,9 +417,12 @@ uint16_t eth_axgbe_recv_scattered_pkts(void *rx_queue,
 		mbuf->pkt_len = data_len;
 
 		if (first_seg != NULL) {
-			if (rte_pktmbuf_chain(first_seg, mbuf) != 0)
+			if (rte_pktmbuf_chain(first_seg, mbuf) != 0) {
 				rte_mempool_put(rxq->mb_pool,
 						first_seg);
+				eop = 0;
+				break;
+			}
 		} else {
 			first_seg = mbuf;
 		}
@@ -462,8 +466,8 @@ uint16_t eth_axgbe_recv_scattered_pkts(void *rx_queue,
 			rte_pktmbuf_free(mbuf);
 			goto next_desc;
 		}
+		eop = 0;
 
-		first_seg->pkt_len = pkt_len;
 		rxq->bytes += pkt_len;
 		mbuf->next = NULL;
 
--
2.25.1


More information about the dev mailing list