net/txgbe: add queue stats mapping
[dpdk.git] / drivers / net / e1000 / em_rxtx.c
index 5925e49..19e3bff 100644 (file)
@@ -1611,12 +1611,14 @@ em_dev_free_queues(struct rte_eth_dev *dev)
        for (i = 0; i < dev->data->nb_rx_queues; i++) {
                eth_em_rx_queue_release(dev->data->rx_queues[i]);
                dev->data->rx_queues[i] = NULL;
+               rte_eth_dma_zone_free(dev, "rx_ring", i);
        }
        dev->data->nb_rx_queues = 0;
 
        for (i = 0; i < dev->data->nb_tx_queues; i++) {
                eth_em_tx_queue_release(dev->data->tx_queues[i]);
                dev->data->tx_queues[i] = NULL;
+               rte_eth_dma_zone_free(dev, "tx_ring", i);
        }
        dev->data->nb_tx_queues = 0;
 }
@@ -2049,13 +2051,12 @@ e1000_flush_tx_ring(struct rte_eth_dev *dev)
                tx_desc->lower.data = rte_cpu_to_le_32(txd_lower | size);
                tx_desc->upper.data = 0;
 
-               rte_wmb();
+               rte_io_wmb();
                txq->tx_tail++;
                if (txq->tx_tail == txq->nb_tx_desc)
                        txq->tx_tail = 0;
-               rte_io_wmb();
                tdt_reg_addr = E1000_PCI_REG_ADDR(hw, E1000_TDT(i));
-               E1000_PCI_REG_WRITE_RELAXED(tdt_reg_addr, txq->tx_tail);
+               E1000_PCI_REG_WRITE(tdt_reg_addr, txq->tx_tail);
                usec_delay(250);
        }
 }