i40e: move enabling icr0 into i40e_update_enable_itr
authorJacob Keller <jacob.e.keller@intel.com>
Fri, 14 Jul 2017 13:10:09 +0000 (09:10 -0400)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Sun, 27 Aug 2017 23:07:13 +0000 (16:07 -0700)
If we don't have MSI-X enabled, we handle interrupts on all icr0. This
is a special case, so let's move the conditional into
i40e_update_enable_itr() in order to make i40e_napi_poll easier to
read about.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_txrx.c

index 8a969d8..5c1edcc 100644 (file)
@@ -2243,6 +2243,12 @@ static inline void i40e_update_enable_itr(struct i40e_vsi *vsi,
        int idx = q_vector->v_idx;
        int rx_itr_setting, tx_itr_setting;
 
+       /* If we don't have MSIX, then we only need to re-enable icr0 */
+       if (!(vsi->back->flags & I40E_FLAG_MSIX_ENABLED)) {
+               i40e_irq_dynamic_enable_icr0(vsi->back, false);
+               return;
+       }
+
        vector = (q_vector->v_idx + vsi->base_vector);
 
        /* avoid dynamic calculation if in countdown mode OR if
@@ -2396,8 +2402,6 @@ tx_only:
         */
        if (!clean_complete)
                i40e_force_wb(vsi, q_vector);
-       else if (!(vsi->back->flags & I40E_FLAG_MSIX_ENABLED))
-               i40e_irq_dynamic_enable_icr0(vsi->back, false);
        else
                i40e_update_enable_itr(vsi, q_vector);