mbuf: set mbuf fields while in pool
[dpdk.git] / drivers / net / mlx5 / mlx5_rxtx.c
index 3cbf63f..06b699a 100644 (file)
@@ -1999,7 +1999,8 @@ mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n)
                        while (pkt != seg) {
                                assert(pkt != (*rxq->elts)[idx]);
                                rep = NEXT(pkt);
-                               rte_mbuf_refcnt_set(pkt, 0);
+                               NEXT(pkt) = NULL;
+                               NB_SEGS(pkt) = 1;
                                rte_mbuf_raw_free(pkt);
                                pkt = rep;
                        }
@@ -2010,13 +2011,11 @@ mlx5_rx_burst(void *dpdk_rxq, struct rte_mbuf **pkts, uint16_t pkts_n)
                        len = mlx5_rx_poll_len(rxq, cqe, cqe_cnt,
                                               &rss_hash_res);
                        if (!len) {
-                               rte_mbuf_refcnt_set(rep, 0);
                                rte_mbuf_raw_free(rep);
                                break;
                        }
                        if (unlikely(len == -1)) {
                                /* RX error, packet is likely too large. */
-                               rte_mbuf_refcnt_set(rep, 0);
                                rte_mbuf_raw_free(rep);
                                ++rxq->stats.idropped;
                                goto skip;