net/vmxnet3: support device reset
authorDheemanth Mallikarjun <dheemanthm@vmware.com>
Mon, 4 Jan 2021 19:43:08 +0000 (11:43 -0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 22 Feb 2021 16:48:44 +0000 (17:48 +0100)
The vmxnet3 driver didn't have the dev_reset function
pointer set. Hence, provided the necessary function
pointer so that DPDK developers can use the rte_eth_dev_reset
API to reset the vmxnet3 device data.

Signed-off-by: Dheemanth Mallikarjun <dheemanthm@vmware.com>
Acked-by: Yong Wang <yongwang@vmware.com>
drivers/net/vmxnet3/vmxnet3_ethdev.c

index ecdecc4..d1a313b 100644 (file)
@@ -67,6 +67,7 @@ static int vmxnet3_dev_configure(struct rte_eth_dev *dev);
 static int vmxnet3_dev_start(struct rte_eth_dev *dev);
 static int vmxnet3_dev_stop(struct rte_eth_dev *dev);
 static int vmxnet3_dev_close(struct rte_eth_dev *dev);
+static int vmxnet3_dev_reset(struct rte_eth_dev *dev);
 static void vmxnet3_dev_set_rxmode(struct vmxnet3_hw *hw, uint32_t feature, int set);
 static int vmxnet3_dev_promiscuous_enable(struct rte_eth_dev *dev);
 static int vmxnet3_dev_promiscuous_disable(struct rte_eth_dev *dev);
@@ -112,6 +113,7 @@ static const struct eth_dev_ops vmxnet3_eth_dev_ops = {
        .dev_start            = vmxnet3_dev_start,
        .dev_stop             = vmxnet3_dev_stop,
        .dev_close            = vmxnet3_dev_close,
+       .dev_reset            = vmxnet3_dev_reset,
        .promiscuous_enable   = vmxnet3_dev_promiscuous_enable,
        .promiscuous_disable  = vmxnet3_dev_promiscuous_disable,
        .allmulticast_enable  = vmxnet3_dev_allmulticast_enable,
@@ -913,6 +915,18 @@ vmxnet3_dev_close(struct rte_eth_dev *dev)
        return ret;
 }
 
+static int
+vmxnet3_dev_reset(struct rte_eth_dev *dev)
+{
+       int ret;
+
+       ret = eth_vmxnet3_dev_uninit(dev);
+       if (ret)
+               return ret;
+       ret = eth_vmxnet3_dev_init(dev);
+       return ret;
+}
+
 static void
 vmxnet3_hw_tx_stats_get(struct vmxnet3_hw *hw, unsigned int q,
                        struct UPT1_TxStats *res)