net/nfp: fix device start/stop for VFs
authorAlejandro Lucero <alejandro.lucero@netronome.com>
Wed, 2 Jan 2019 15:21:49 +0000 (15:21 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 14 Jan 2019 16:44:29 +0000 (17:44 +0100)
Previous commit adding multiprocess support broke VF support.
When VFs, the PMD does not set the link up or down.

Fixes: ef28aa96e53b ("net/nfp: support multiprocess")

Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
drivers/net/nfp/nfp_net.c

index ffef97d..05a44a2 100644 (file)
@@ -766,12 +766,14 @@ nfp_net_start(struct rte_eth_dev *dev)
                goto error;
        }
 
-       if (hw->is_pf && rte_eal_process_type() == RTE_PROC_PRIMARY)
-               /* Configure the physical port up */
-               nfp_eth_set_configured(hw->cpp, hw->pf_port_idx, 1);
-       else
-               nfp_eth_set_configured(dev->process_private,
-                                      hw->pf_port_idx, 1);
+       if (hw->is_pf) {
+               if (rte_eal_process_type() == RTE_PROC_PRIMARY)
+                       /* Configure the physical port up */
+                       nfp_eth_set_configured(hw->cpp, hw->pf_port_idx, 1);
+               else
+                       nfp_eth_set_configured(dev->process_private,
+                                              hw->pf_port_idx, 1);
+       }
 
        hw->ctrl = new_ctrl;
 
@@ -820,12 +822,14 @@ nfp_net_stop(struct rte_eth_dev *dev)
                        (struct nfp_net_rxq *)dev->data->rx_queues[i]);
        }
 
-       if (hw->is_pf && rte_eal_process_type() == RTE_PROC_PRIMARY)
-               /* Configure the physical port down */
-               nfp_eth_set_configured(hw->cpp, hw->pf_port_idx, 0);
-       else
-               nfp_eth_set_configured(dev->process_private,
-                                      hw->pf_port_idx, 0);
+       if (hw->is_pf) {
+               if (rte_eal_process_type() == RTE_PROC_PRIMARY)
+                       /* Configure the physical port down */
+                       nfp_eth_set_configured(hw->cpp, hw->pf_port_idx, 0);
+               else
+                       nfp_eth_set_configured(dev->process_private,
+                                              hw->pf_port_idx, 0);
+       }
 }
 
 /* Reset and stop device. The device can not be restarted. */