remove unnecessary null checks
[dpdk.git] / drivers / net / ixgbe / ixgbe_ethdev.c
index fe61dba..3d799d2 100644 (file)
@@ -1223,13 +1223,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
 
        /* initialize PF if max_vfs not zero */
        ret = ixgbe_pf_host_init(eth_dev);
-       if (ret) {
-               rte_free(eth_dev->data->mac_addrs);
-               eth_dev->data->mac_addrs = NULL;
-               rte_free(eth_dev->data->hash_mac_addrs);
-               eth_dev->data->hash_mac_addrs = NULL;
-               return ret;
-       }
+       if (ret)
+               goto err_pf_host_init;
 
        ctrl_ext = IXGBE_READ_REG(hw, IXGBE_CTRL_EXT);
        /* let hardware know driver is loaded */
@@ -1268,10 +1263,14 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
        TAILQ_INIT(&filter_info->fivetuple_list);
 
        /* initialize flow director filter list & hash */
-       ixgbe_fdir_filter_init(eth_dev);
+       ret = ixgbe_fdir_filter_init(eth_dev);
+       if (ret)
+               goto err_fdir_filter_init;
 
        /* initialize l2 tunnel filter list & hash */
-       ixgbe_l2_tn_filter_init(eth_dev);
+       ret = ixgbe_l2_tn_filter_init(eth_dev);
+       if (ret)
+               goto err_l2_tn_filter_init;
 
        /* initialize flow filter lists */
        ixgbe_filterlist_init();
@@ -1283,6 +1282,21 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
        ixgbe_tm_conf_init(eth_dev);
 
        return 0;
+
+err_l2_tn_filter_init:
+       ixgbe_fdir_filter_uninit(eth_dev);
+err_fdir_filter_init:
+       ixgbe_disable_intr(hw);
+       rte_intr_disable(intr_handle);
+       rte_intr_callback_unregister(intr_handle,
+               ixgbe_dev_interrupt_handler, eth_dev);
+       ixgbe_pf_host_uninit(eth_dev);
+err_pf_host_init:
+       rte_free(eth_dev->data->mac_addrs);
+       eth_dev->data->mac_addrs = NULL;
+       rte_free(eth_dev->data->hash_mac_addrs);
+       eth_dev->data->hash_mac_addrs = NULL;
+       return ret;
 }
 
 static int
@@ -1322,10 +1336,8 @@ static int ixgbe_fdir_filter_uninit(struct rte_eth_dev *eth_dev)
                IXGBE_DEV_PRIVATE_TO_FDIR_INFO(eth_dev->data->dev_private);
        struct ixgbe_fdir_filter *fdir_filter;
 
-               if (fdir_info->hash_map)
-               rte_free(fdir_info->hash_map);
-       if (fdir_info->hash_handle)
-               rte_hash_free(fdir_info->hash_handle);
+       rte_free(fdir_info->hash_map);
+       rte_hash_free(fdir_info->hash_handle);
 
        while ((fdir_filter = TAILQ_FIRST(&fdir_info->fdir_list))) {
                TAILQ_REMOVE(&fdir_info->fdir_list,
@@ -1343,10 +1355,8 @@ static int ixgbe_l2_tn_filter_uninit(struct rte_eth_dev *eth_dev)
                IXGBE_DEV_PRIVATE_TO_L2_TN_INFO(eth_dev->data->dev_private);
        struct ixgbe_l2_tn_filter *l2_tn_filter;
 
-       if (l2_tn_info->hash_map)
-               rte_free(l2_tn_info->hash_map);
-       if (l2_tn_info->hash_handle)
-               rte_hash_free(l2_tn_info->hash_handle);
+       rte_free(l2_tn_info->hash_map);
+       rte_hash_free(l2_tn_info->hash_handle);
 
        while ((l2_tn_filter = TAILQ_FIRST(&l2_tn_info->l2_tn_list))) {
                TAILQ_REMOVE(&l2_tn_info->l2_tn_list,
@@ -2375,7 +2385,7 @@ ixgbe_dev_configure(struct rte_eth_dev *dev)
        if (dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS_FLAG)
                dev->data->dev_conf.rxmode.offloads |= RTE_ETH_RX_OFFLOAD_RSS_HASH;
 
-       /* multipe queue mode checking */
+       /* multiple queue mode checking */
        ret  = ixgbe_check_mq_mode(dev);
        if (ret != 0) {
                PMD_DRV_LOG(ERR, "ixgbe_check_mq_mode fails with %d.",
@@ -2603,7 +2613,7 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
                }
        }
 
-       /* confiugre msix for sleep until rx interrupt */
+       /* configure MSI-X for sleep until Rx interrupt */
        ixgbe_configure_msix(dev);
 
        /* initialize transmission unit */
@@ -2907,7 +2917,7 @@ ixgbe_dev_set_link_up(struct rte_eth_dev *dev)
        if (hw->mac.type == ixgbe_mac_82599EB) {
 #ifdef RTE_LIBRTE_IXGBE_BYPASS
                if (hw->device_id == IXGBE_DEV_ID_82599_BYPASS) {
-                       /* Not suported in bypass mode */
+                       /* Not supported in bypass mode */
                        PMD_INIT_LOG(ERR, "Set link up is not supported "
                                     "by device id 0x%x", hw->device_id);
                        return -ENOTSUP;
@@ -2938,7 +2948,7 @@ ixgbe_dev_set_link_down(struct rte_eth_dev *dev)
        if (hw->mac.type == ixgbe_mac_82599EB) {
 #ifdef RTE_LIBRTE_IXGBE_BYPASS
                if (hw->device_id == IXGBE_DEV_ID_82599_BYPASS) {
-                       /* Not suported in bypass mode */
+                       /* Not supported in bypass mode */
                        PMD_INIT_LOG(ERR, "Set link down is not supported "
                                     "by device id 0x%x", hw->device_id);
                        return -ENOTSUP;
@@ -4603,7 +4613,7 @@ ixgbe_dev_interrupt_action(struct rte_eth_dev *dev)
  * @param handle
  *  Pointer to interrupt handle.
  * @param param
- *  The address of parameter (struct rte_eth_dev *) regsitered before.
+ *  The address of parameter (struct rte_eth_dev *) registered before.
  *
  * @return
  *  void
@@ -4659,7 +4669,7 @@ ixgbe_dev_interrupt_delayed_handler(void *param)
  * @param handle
  *  Pointer to interrupt handle.
  * @param param
- *  The address of parameter (struct rte_eth_dev *) regsitered before.
+ *  The address of parameter (struct rte_eth_dev *) registered before.
  *
  * @return
  *  void
@@ -5921,7 +5931,7 @@ ixgbevf_configure_msix(struct rte_eth_dev *dev)
        /* Configure all RX queues of VF */
        for (q_idx = 0; q_idx < dev->data->nb_rx_queues; q_idx++) {
                /* Force all queue use vector 0,
-                * as IXGBE_VF_MAXMSIVECOTR = 1
+                * as IXGBE_VF_MAXMSIVECTOR = 1
                 */
                ixgbevf_set_ivar_map(hw, 0, q_idx, vector_idx);
                rte_intr_vec_list_index_set(intr_handle, q_idx,
@@ -6256,7 +6266,7 @@ ixgbe_inject_5tuple_filter(struct rte_eth_dev *dev,
  * @param
  * dev: Pointer to struct rte_eth_dev.
  * index: the index the filter allocates.
- * filter: ponter to the filter that will be added.
+ * filter: pointer to the filter that will be added.
  * rx_queue: the queue id the filter assigned to.
  *
  * @return
@@ -6872,7 +6882,7 @@ ixgbe_timesync_disable(struct rte_eth_dev *dev)
        /* Disable L2 filtering of IEEE1588/802.1AS Ethernet frame types. */
        IXGBE_WRITE_REG(hw, IXGBE_ETQF(IXGBE_ETQF_FILTER_1588), 0);
 
-       /* Stop incrementating the System Time registers. */
+       /* Stop incrementing the System Time registers. */
        IXGBE_WRITE_REG(hw, IXGBE_TIMINCA, 0);
 
        return 0;