X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fenetc%2Fenetc_ethdev.c;h=6ff3022874528a261c75833348fe0cb00d3747e9;hb=f28fbd1e6b502fe4c38e0a4aa862e103811b1b97;hp=b3dec7e64dc7a0f4925997ef07df35e6797b18c2;hpb=30410493759f4bae3f65497737661e27b93c2d0e;p=dpdk.git diff --git a/drivers/net/enetc/enetc_ethdev.c b/drivers/net/enetc/enetc_ethdev.c index b3dec7e64d..6ff3022874 100644 --- a/drivers/net/enetc/enetc_ethdev.c +++ b/drivers/net/enetc/enetc_ethdev.c @@ -45,7 +45,7 @@ enetc_dev_start(struct rte_eth_dev *dev) return 0; } -static void +static int enetc_dev_stop(struct rte_eth_dev *dev) { struct enetc_eth_hw *hw = @@ -54,6 +54,7 @@ enetc_dev_stop(struct rte_eth_dev *dev) uint32_t val; PMD_INIT_FUNC_TRACE(); + dev->data->dev_started = 0; /* Disable port */ val = enetc_port_rd(enetc_hw, ENETC_PMR); enetc_port_wr(enetc_hw, ENETC_PMR, val & (~ENETC_PMR_EN)); @@ -61,6 +62,8 @@ enetc_dev_stop(struct rte_eth_dev *dev) val = enetc_port_rd(enetc_hw, ENETC_PM0_CMD_CFG); enetc_port_wr(enetc_hw, ENETC_PM0_CMD_CFG, val & (~(ENETC_PM0_TX_EN | ENETC_PM0_RX_EN))); + + return 0; } static const uint32_t * @@ -549,12 +552,13 @@ static int enetc_dev_close(struct rte_eth_dev *dev) { uint16_t i; + int ret; PMD_INIT_FUNC_TRACE(); if (rte_eal_process_type() != RTE_PROC_PRIMARY) return 0; - enetc_dev_stop(dev); + ret = enetc_dev_stop(dev); for (i = 0; i < dev->data->nb_rx_queues; i++) { enetc_rx_queue_release(dev->data->rx_queues[i]); @@ -571,7 +575,7 @@ enetc_dev_close(struct rte_eth_dev *dev) if (rte_eal_iova_mode() == RTE_IOVA_PA) dpaax_iova_table_depopulate(); - return 0; + return ret; } static int @@ -881,6 +885,8 @@ enetc_dev_init(struct rte_eth_dev *eth_dev) eth_dev->rx_pkt_burst = &enetc_recv_pkts; eth_dev->tx_pkt_burst = &enetc_xmit_pkts; + eth_dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS; + /* Retrieving and storing the HW base address of device */ hw->hw.reg = (void *)pci_dev->mem_resource[0].addr; hw->device_id = pci_dev->id.device_id;