ethdev: remove forcing stopped state upon close
[dpdk.git] / drivers / net / mvneta / mvneta_ethdev.c
index 5bf3ebc..3c0332a 100644 (file)
@@ -413,6 +413,8 @@ mvneta_dev_stop(struct rte_eth_dev *dev)
 {
        struct mvneta_priv *priv = dev->data->dev_private;
 
+       dev->data->dev_started = 0;
+
        if (!priv->ppio)
                return;
 
@@ -429,12 +431,15 @@ mvneta_dev_stop(struct rte_eth_dev *dev)
  * @param dev
  *   Pointer to Ethernet device structure.
  */
-static void
+static int
 mvneta_dev_close(struct rte_eth_dev *dev)
 {
        struct mvneta_priv *priv = dev->data->dev_private;
        int i;
 
+       if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+               return 0;
+
        if (priv->ppio)
                mvneta_dev_stop(dev);
 
@@ -455,6 +460,8 @@ mvneta_dev_close(struct rte_eth_dev *dev)
                mvneta_neta_deinit();
                rte_mvep_deinit(MVEP_MOD_T_NETA);
        }
+
+       return 0;
 }
 
 /**
@@ -832,9 +839,6 @@ mvneta_eth_dev_create(struct rte_vdev_device *vdev, const char *name)
        mvneta_set_tx_function(eth_dev);
        eth_dev->dev_ops = &mvneta_ops;
 
-       /* Flag to call rte_eth_dev_release_port() in rte_eth_dev_close(). */
-       eth_dev->data->dev_flags |= RTE_ETH_DEV_CLOSE_REMOVE;
-
        rte_eth_dev_probing_finish(eth_dev);
        return 0;
 out_free: