net/bnxt: consolidate template table processing
[dpdk.git] / drivers / net / bnx2x / bnx2x_ethdev.c
index 30588b1..40225b2 100644 (file)
@@ -13,9 +13,6 @@
 #include <rte_ethdev_pci.h>
 #include <rte_alarm.h>
 
-int bnx2x_logtype_init;
-int bnx2x_logtype_driver;
-
 /*
  * The set of PCI devices this driver supports
  */
@@ -283,13 +280,17 @@ bnx2x_dev_stop(struct rte_eth_dev *dev)
        return;
 }
 
-static void
+static int
 bnx2x_dev_close(struct rte_eth_dev *dev)
 {
        struct bnx2x_softc *sc = dev->data->dev_private;
 
        PMD_INIT_FUNC_TRACE(sc);
 
+       /* only close in case of the primary process */
+       if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+               return 0;
+
        if (IS_VF(sc))
                bnx2x_vf_close(sc);
 
@@ -298,6 +299,11 @@ bnx2x_dev_close(struct rte_eth_dev *dev)
 
        /* free ilt */
        bnx2x_free_ilt_mem(sc);
+
+       /* mac_addrs must not be freed alone because part of dev_private */
+       dev->data->mac_addrs = NULL;
+
+       return 0;
 }
 
 static int
@@ -533,6 +539,7 @@ bnx2x_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 
        dev_info->rx_desc_lim.nb_max = MAX_RX_AVAIL;
        dev_info->rx_desc_lim.nb_min = MIN_RX_SIZE_NONTPA;
+       dev_info->rx_desc_lim.nb_mtu_seg_max = 1;
        dev_info->tx_desc_lim.nb_max = MAX_TX_AVAIL;
 
        return 0;
@@ -755,8 +762,9 @@ eth_bnx2xvf_dev_init(struct rte_eth_dev *eth_dev)
 
 static int eth_bnx2x_dev_uninit(struct rte_eth_dev *eth_dev)
 {
-       /* mac_addrs must not be freed alone because part of dev_private */
-       eth_dev->data->mac_addrs = NULL;
+       struct bnx2x_softc *sc = eth_dev->data->dev_private;
+       PMD_INIT_FUNC_TRACE(sc);
+       bnx2x_dev_close(eth_dev);
        return 0;
 }
 
@@ -804,13 +812,5 @@ RTE_PMD_REGISTER_KMOD_DEP(net_bnx2x, "* igb_uio | uio_pci_generic | vfio-pci");
 RTE_PMD_REGISTER_PCI(net_bnx2xvf, rte_bnx2xvf_pmd);
 RTE_PMD_REGISTER_PCI_TABLE(net_bnx2xvf, pci_id_bnx2xvf_map);
 RTE_PMD_REGISTER_KMOD_DEP(net_bnx2xvf, "* igb_uio | vfio-pci");
-
-RTE_INIT(bnx2x_init_log)
-{
-       bnx2x_logtype_init = rte_log_register("pmd.net.bnx2x.init");
-       if (bnx2x_logtype_init >= 0)
-               rte_log_set_level(bnx2x_logtype_init, RTE_LOG_NOTICE);
-       bnx2x_logtype_driver = rte_log_register("pmd.net.bnx2x.driver");
-       if (bnx2x_logtype_driver >= 0)
-               rte_log_set_level(bnx2x_logtype_driver, RTE_LOG_NOTICE);
-}
+RTE_LOG_REGISTER(bnx2x_logtype_init, pmd.net.bnx2x.init, NOTICE);
+RTE_LOG_REGISTER(bnx2x_logtype_driver, pmd.net.bnx2x.driver, NOTICE);