diff options
author | Alexander Duyck <alexander.h.duyck@intel.com> | 2011-01-06 09:29:59 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-01-10 02:44:12 -0500 |
commit | 45b9f509b7f5d2d792b3c03b78ddc8ec543e921b (patch) | |
tree | 0ae4f187a227308477124daf4e6e7989e7c94dcb /drivers/net/ixgbe/ixgbe_main.c | |
parent | 69830529b26e6dc9582a4b65ab88f40f050cf94e (diff) |
ixgbe: update ntuple filter configuration
This change fixes several issues found in ntuple filtering while I was
doing the ATR refactor.
Specifically I updated the masks to work correctly with the latest version
of ethtool, I cleaned up the exception handling and added detailed error
output when a filter is rejected, and corrected several bits that were set
incorrectly in ixgbe_type.h.
The previous version of this patch included a printk that was left over from
me fixing the filter setup. This patch does not include that printk.
Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Stephen Ko <stephen.s.ko@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ixgbe/ixgbe_main.c')
-rw-r--r-- | drivers/net/ixgbe/ixgbe_main.c | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index 490818c46d74..a060610a42db 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
@@ -4821,6 +4821,12 @@ static int ixgbe_set_interrupt_capability(struct ixgbe_adapter *adapter) | |||
4821 | 4821 | ||
4822 | adapter->flags &= ~IXGBE_FLAG_DCB_ENABLED; | 4822 | adapter->flags &= ~IXGBE_FLAG_DCB_ENABLED; |
4823 | adapter->flags &= ~IXGBE_FLAG_RSS_ENABLED; | 4823 | adapter->flags &= ~IXGBE_FLAG_RSS_ENABLED; |
4824 | if (adapter->flags & (IXGBE_FLAG_FDIR_HASH_CAPABLE | | ||
4825 | IXGBE_FLAG_FDIR_PERFECT_CAPABLE)) { | ||
4826 | e_err(probe, | ||
4827 | "Flow Director is not supported while multiple " | ||
4828 | "queues are disabled. Disabling Flow Director\n"); | ||
4829 | } | ||
4824 | adapter->flags &= ~IXGBE_FLAG_FDIR_HASH_CAPABLE; | 4830 | adapter->flags &= ~IXGBE_FLAG_FDIR_HASH_CAPABLE; |
4825 | adapter->flags &= ~IXGBE_FLAG_FDIR_PERFECT_CAPABLE; | 4831 | adapter->flags &= ~IXGBE_FLAG_FDIR_PERFECT_CAPABLE; |
4826 | adapter->atr_sample_rate = 0; | 4832 | adapter->atr_sample_rate = 0; |
@@ -5126,16 +5132,11 @@ static int __devinit ixgbe_sw_init(struct ixgbe_adapter *adapter) | |||
5126 | adapter->flags2 |= IXGBE_FLAG2_RSC_ENABLED; | 5132 | adapter->flags2 |= IXGBE_FLAG2_RSC_ENABLED; |
5127 | if (hw->device_id == IXGBE_DEV_ID_82599_T3_LOM) | 5133 | if (hw->device_id == IXGBE_DEV_ID_82599_T3_LOM) |
5128 | adapter->flags2 |= IXGBE_FLAG2_TEMP_SENSOR_CAPABLE; | 5134 | adapter->flags2 |= IXGBE_FLAG2_TEMP_SENSOR_CAPABLE; |
5129 | if (dev->features & NETIF_F_NTUPLE) { | 5135 | /* n-tuple support exists, always init our spinlock */ |
5130 | /* Flow Director perfect filter enabled */ | 5136 | spin_lock_init(&adapter->fdir_perfect_lock); |
5131 | adapter->flags |= IXGBE_FLAG_FDIR_PERFECT_CAPABLE; | 5137 | /* Flow Director hash filters enabled */ |
5132 | adapter->atr_sample_rate = 0; | 5138 | adapter->flags |= IXGBE_FLAG_FDIR_HASH_CAPABLE; |
5133 | spin_lock_init(&adapter->fdir_perfect_lock); | 5139 | adapter->atr_sample_rate = 20; |
5134 | } else { | ||
5135 | /* Flow Director hash filters enabled */ | ||
5136 | adapter->flags |= IXGBE_FLAG_FDIR_HASH_CAPABLE; | ||
5137 | adapter->atr_sample_rate = 20; | ||
5138 | } | ||
5139 | adapter->ring_feature[RING_F_FDIR].indices = | 5140 | adapter->ring_feature[RING_F_FDIR].indices = |
5140 | IXGBE_MAX_FDIR_INDICES; | 5141 | IXGBE_MAX_FDIR_INDICES; |
5141 | adapter->fdir_pballoc = 0; | 5142 | adapter->fdir_pballoc = 0; |