fm10k: fix Tx queue cleaning after start error
[dpdk.git] / drivers / net / e1000 / igb_rxtx.c
index 3fee735..b13930e 100644 (file)
@@ -851,7 +851,7 @@ eth_igb_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
                rxe->mbuf = nmb;
                dma_addr =
                        rte_cpu_to_le_64(RTE_MBUF_DATA_DMA_ADDR_DEFAULT(nmb));
-               rxdp->read.hdr_addr = dma_addr;
+               rxdp->read.hdr_addr = 0;
                rxdp->read.pkt_addr = dma_addr;
 
                /*
@@ -1040,7 +1040,7 @@ eth_igb_recv_scattered_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
                rxe->mbuf = nmb;
                dma = rte_cpu_to_le_64(RTE_MBUF_DATA_DMA_ADDR_DEFAULT(nmb));
                rxdp->read.pkt_addr = dma;
-               rxdp->read.hdr_addr = dma;
+               rxdp->read.hdr_addr = 0;
 
                /*
                 * Set data length & data buffer address of mbuf.
@@ -1602,6 +1602,12 @@ igb_dev_clear_queues(struct rte_eth_dev *dev)
                        igb_reset_rx_queue(rxq);
                }
        }
+}
+
+void
+igb_dev_free_queues(struct rte_eth_dev *dev)
+{
+       uint16_t i;
 
        for (i = 0; i < dev->data->nb_rx_queues; i++) {
                eth_igb_rx_queue_release(dev->data->rx_queues[i]);
@@ -1984,7 +1990,7 @@ igb_alloc_rx_queue_mbufs(struct igb_rx_queue *rxq)
                dma_addr =
                        rte_cpu_to_le_64(RTE_MBUF_DATA_DMA_ADDR_DEFAULT(mbuf));
                rxd = &rxq->rx_ring[i];
-               rxd->read.hdr_addr = dma_addr;
+               rxd->read.hdr_addr = 0;
                rxd->read.pkt_addr = dma_addr;
                rxe[i].mbuf = mbuf;
        }