i40e: Fix a boundary condition and turning off of ntuple
authorAnjali Singhai Jain <anjali.singhai@intel.com>
Wed, 4 Jun 2014 08:45:20 +0000 (08:45 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 3 Jul 2014 02:02:20 +0000 (19:02 -0700)
When turning off ntuple with a FD table full situation,
the driver would have auto disabled FD filter additions.
Clear the auto disable flag for FD_SB so that when the
feature is turned on again using "ethtool -K ethx ntuple on"
we can start adding filters once again.

Change-ID: I036a32e7331bcae765b657c8abb4fa070940b163
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Tested-by: Jim Young <jamesx.m.young@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_main.c

index 88704c0492756178b45e4a066f1b848e45def01c..d9dcb8c0d611bf410f8e328e433b6bf957423152 100644 (file)
@@ -6885,9 +6885,11 @@ bool i40e_set_ntuple(struct i40e_pf *pf, netdev_features_t features)
                        i40e_fdir_filter_exit(pf);
                }
                pf->flags &= ~I40E_FLAG_FD_SB_ENABLED;
-               /* if ATR was disabled it can be re-enabled. */
-               if (!(pf->flags & I40E_FLAG_FD_ATR_ENABLED))
-                       pf->flags |= I40E_FLAG_FD_ATR_ENABLED;
+               pf->auto_disable_flags &= ~I40E_FLAG_FD_SB_ENABLED;
+               /* if ATR was auto disabled it can be re-enabled. */
+               if ((pf->flags & I40E_FLAG_FD_ATR_ENABLED) &&
+                   (pf->auto_disable_flags & I40E_FLAG_FD_ATR_ENABLED))
+                       pf->auto_disable_flags &= ~I40E_FLAG_FD_ATR_ENABLED;
        }
        return need_reset;
 }