net/dpaa2: fix check for key size
[dpdk.git] / drivers / net / dpaa2 / dpaa2_ethdev.c
index 38cf0ab..d862451 100644 (file)
@@ -99,7 +99,6 @@ static const enum rte_filter_op dpaa2_supported_filter_ops[] = {
 };
 
 static struct rte_dpaa2_driver rte_dpaa2_pmd;
-static int dpaa2_dev_uninit(struct rte_eth_dev *eth_dev);
 static int dpaa2_dev_link_update(struct rte_eth_dev *dev,
                                 int wait_to_complete);
 static int dpaa2_dev_set_link_up(struct rte_eth_dev *dev);
@@ -241,8 +240,6 @@ dpaa2_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
 
        PMD_INIT_FUNC_TRACE();
 
-       dev_info->if_index = priv->hw_id;
-
        dev_info->max_mac_addrs = priv->max_mac_filters;
        dev_info->max_rx_pktlen = DPAA2_MAX_RX_PKT_LEN;
        dev_info->min_rx_bufsize = DPAA2_MIN_RX_BUF_SIZE;
@@ -1065,8 +1062,7 @@ dpaa2_interrupt_handler(void *param)
                clear = DPNI_IRQ_EVENT_LINK_CHANGED;
                dpaa2_dev_link_update(dev, 0);
                /* calling all the apps registered for link status event */
-               _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC,
-                                             NULL);
+               rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_INTR_LSC, NULL);
        }
 out:
        ret = dpni_clear_irq_status(dpni, CMD_PRI_LOW, priv->token,
@@ -1239,27 +1235,61 @@ dpaa2_dev_stop(struct rte_eth_dev *dev)
        rte_eth_linkstatus_set(dev, &link);
 }
 
-static void
+static int
 dpaa2_dev_close(struct rte_eth_dev *dev)
 {
        struct dpaa2_dev_priv *priv = dev->data->dev_private;
        struct fsl_mc_io *dpni = (struct fsl_mc_io *)dev->process_private;
-       int ret;
+       int i, ret;
        struct rte_eth_link link;
 
        PMD_INIT_FUNC_TRACE();
 
-       dpaa2_flow_clean(dev);
+       if (rte_eal_process_type() != RTE_PROC_PRIMARY)
+               return 0;
+
+       if (!dpni) {
+               DPAA2_PMD_WARN("Already closed or not started");
+               return -1;
+       }
 
+       dpaa2_flow_clean(dev);
        /* Clean the device first */
        ret = dpni_reset(dpni, CMD_PRI_LOW, priv->token);
        if (ret) {
                DPAA2_PMD_ERR("Failure cleaning dpni device: err=%d", ret);
-               return;
+               return -1;
        }
 
        memset(&link, 0, sizeof(link));
        rte_eth_linkstatus_set(dev, &link);
+
+       /* Free private queues memory */
+       dpaa2_free_rx_tx_queues(dev);
+       /* Close the device at underlying layer*/
+       ret = dpni_close(dpni, CMD_PRI_LOW, priv->token);
+       if (ret) {
+               DPAA2_PMD_ERR("Failure closing dpni device with err code %d",
+                             ret);
+       }
+
+       /* Free the allocated memory for ethernet private data and dpni*/
+       priv->hw = NULL;
+       dev->process_private = NULL;
+       rte_free(dpni);
+
+       for (i = 0; i < MAX_TCS; i++)
+               rte_free((void *)(size_t)priv->extract.tc_extract_param[i]);
+
+       if (priv->extract.qos_extract_param)
+               rte_free((void *)(size_t)priv->extract.qos_extract_param);
+
+       dev->dev_ops = NULL;
+       dev->rx_pkt_burst = NULL;
+       dev->tx_pkt_burst = NULL;
+
+       DPAA2_PMD_INFO("%s: netdev deleted", dev->data->name);
+       return 0;
 }
 
 static int
@@ -2710,56 +2740,9 @@ dpaa2_dev_init(struct rte_eth_dev *eth_dev)
        RTE_LOG(INFO, PMD, "%s: netdev created\n", eth_dev->data->name);
        return 0;
 init_err:
-       dpaa2_dev_uninit(eth_dev);
-       return ret;
-}
-
-static int
-dpaa2_dev_uninit(struct rte_eth_dev *eth_dev)
-{
-       struct dpaa2_dev_priv *priv = eth_dev->data->dev_private;
-       struct fsl_mc_io *dpni = (struct fsl_mc_io *)eth_dev->process_private;
-       int i, ret;
-
-       PMD_INIT_FUNC_TRACE();
-
-       if (rte_eal_process_type() != RTE_PROC_PRIMARY)
-               return 0;
-
-       if (!dpni) {
-               DPAA2_PMD_WARN("Already closed or not started");
-               return -1;
-       }
-
        dpaa2_dev_close(eth_dev);
 
-       dpaa2_free_rx_tx_queues(eth_dev);
-
-       /* Close the device at underlying layer*/
-       ret = dpni_close(dpni, CMD_PRI_LOW, priv->token);
-       if (ret) {
-               DPAA2_PMD_ERR(
-                            "Failure closing dpni device with err code %d",
-                            ret);
-       }
-
-       /* Free the allocated memory for ethernet private data and dpni*/
-       priv->hw = NULL;
-       eth_dev->process_private = NULL;
-       rte_free(dpni);
-
-       for (i = 0; i < MAX_TCS; i++)
-               rte_free((void *)(size_t)priv->extract.tc_extract_param[i]);
-
-       if (priv->extract.qos_extract_param)
-               rte_free((void *)(size_t)priv->extract.qos_extract_param);
-
-       eth_dev->dev_ops = NULL;
-       eth_dev->rx_pkt_burst = NULL;
-       eth_dev->tx_pkt_burst = NULL;
-
-       DPAA2_PMD_INFO("%s: netdev deleted", eth_dev->data->name);
-       return 0;
+       return ret;
 }
 
 static int
@@ -2828,13 +2811,13 @@ static int
 rte_dpaa2_remove(struct rte_dpaa2_device *dpaa2_dev)
 {
        struct rte_eth_dev *eth_dev;
+       int ret;
 
        eth_dev = dpaa2_dev->eth_dev;
-       dpaa2_dev_uninit(eth_dev);
-
-       rte_eth_dev_release_port(eth_dev);
+       dpaa2_dev_close(eth_dev);
+       ret = rte_eth_dev_release_port(eth_dev);
 
-       return 0;
+       return ret;
 }
 
 static struct rte_dpaa2_driver rte_dpaa2_pmd = {