net/mlx5: add header reformat HW steering action
[dpdk.git] / drivers / net / e1000 / igb_ethdev.c
index ff06575..a9c18b2 100644 (file)
@@ -1149,7 +1149,7 @@ eth_igb_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  = igb_check_mq_mode(dev);
        if (ret != 0) {
                PMD_DRV_LOG(ERR, "igb_check_mq_mode fails with %d.",
@@ -1265,7 +1265,7 @@ eth_igb_start(struct rte_eth_dev *dev)
                }
        }
 
-       /* confiugre msix for rx interrupt */
+       /* configure MSI-X for Rx interrupt */
        eth_igb_configure_msix_intr(dev);
 
        /* Configure for OS presence */
@@ -2168,6 +2168,7 @@ eth_igb_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        dev_info->tx_queue_offload_capa = igb_get_tx_queue_offloads_capa(dev);
        dev_info->tx_offload_capa = igb_get_tx_port_offloads_capa(dev) |
                                    dev_info->tx_queue_offload_capa;
+       dev_info->dev_capa &= ~RTE_ETH_DEV_CAPA_FLOW_RULE_KEEP;
 
        switch (hw->mac.type) {
        case e1000_82575:
@@ -2818,7 +2819,7 @@ eth_igb_interrupt_get_status(struct rte_eth_dev *dev)
 }
 
 /*
- * It executes link_update after knowing an interrupt is prsent.
+ * It executes link_update after knowing an interrupt is present.
  *
  * @param dev
  *  Pointer to struct rte_eth_dev.
@@ -2888,7 +2889,7 @@ eth_igb_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
@@ -3786,7 +3787,7 @@ igb_inject_2uple_filter(struct rte_eth_dev *dev,
  *
  * @param
  * dev: Pointer to struct rte_eth_dev.
- * ntuple_filter: ponter to the filter that will be added.
+ * ntuple_filter: pointer to the filter that will be added.
  *
  * @return
  *    - On success, zero.
@@ -3867,7 +3868,7 @@ igb_delete_2tuple_filter(struct rte_eth_dev *dev,
  *
  * @param
  * dev: Pointer to struct rte_eth_dev.
- * ntuple_filter: ponter to the filter that will be removed.
+ * ntuple_filter: pointer to the filter that will be removed.
  *
  * @return
  *    - On success, zero.
@@ -4225,7 +4226,7 @@ igb_inject_5tuple_filter_82576(struct rte_eth_dev *dev,
  *
  * @param
  * dev: Pointer to struct rte_eth_dev.
- * ntuple_filter: ponter to the filter that will be added.
+ * ntuple_filter: pointer to the filter that will be added.
  *
  * @return
  *    - On success, zero.
@@ -4312,7 +4313,7 @@ igb_delete_5tuple_filter_82576(struct rte_eth_dev *dev,
  *
  * @param
  * dev: Pointer to struct rte_eth_dev.
- * ntuple_filter: ponter to the filter that will be removed.
+ * ntuple_filter: pointer to the filter that will be removed.
  *
  * @return
  *    - On success, zero.
@@ -4830,7 +4831,7 @@ igb_timesync_disable(struct rte_eth_dev *dev)
        /* Disable L2 filtering of IEEE1588/802.1AS Ethernet frame types. */
        E1000_WRITE_REG(hw, E1000_ETQF(E1000_ETQF_FILTER_1588), 0);
 
-       /* Stop incrementating the System Time registers. */
+       /* Stop incrementing the System Time registers. */
        E1000_WRITE_REG(hw, E1000_TIMINCA, 0);
 
        return 0;
@@ -5194,7 +5195,7 @@ eth_igb_assign_msix_vector(struct e1000_hw *hw, int8_t direction,
 static void
 eth_igb_configure_msix_intr(struct rte_eth_dev *dev)
 {
-       int queue_id;
+       int queue_id, nb_efd;
        uint32_t tmpval, regval, intr_mask;
        struct e1000_hw *hw =
                E1000_DEV_PRIVATE_TO_HW(dev->data->dev_private);
@@ -5243,9 +5244,11 @@ eth_igb_configure_msix_intr(struct rte_eth_dev *dev)
                E1000_WRITE_REG(hw, E1000_GPIE, E1000_GPIE_MSIX_MODE |
                                        E1000_GPIE_PBA | E1000_GPIE_EIAME |
                                        E1000_GPIE_NSICR);
-               intr_mask =
-                       RTE_LEN2MASK(rte_intr_nb_efd_get(intr_handle),
-                                    uint32_t) << misc_shift;
+               nb_efd = rte_intr_nb_efd_get(intr_handle);
+               if (nb_efd < 0)
+                       return;
+
+               intr_mask = RTE_LEN2MASK(nb_efd, uint32_t) << misc_shift;
 
                if (dev->data->dev_conf.intr_conf.lsc != 0)
                        intr_mask |= (1 << IGB_MSIX_OTHER_INTR_VEC);
@@ -5263,8 +5266,11 @@ eth_igb_configure_msix_intr(struct rte_eth_dev *dev)
        /* use EIAM to auto-mask when MSI-X interrupt
         * is asserted, this saves a register write for every interrupt
         */
-       intr_mask = RTE_LEN2MASK(rte_intr_nb_efd_get(intr_handle),
-                                uint32_t) << misc_shift;
+       nb_efd = rte_intr_nb_efd_get(intr_handle);
+       if (nb_efd < 0)
+               return;
+
+       intr_mask = RTE_LEN2MASK(nb_efd, uint32_t) << misc_shift;
 
        if (dev->data->dev_conf.intr_conf.lsc != 0)
                intr_mask |= (1 << IGB_MSIX_OTHER_INTR_VEC);