|
@@ -308,6 +308,7 @@ static void ixgbe_cache_ring_register(struct ixgbe_adapter *adapter)
|
|
|
ixgbe_cache_ring_rss(adapter);
|
|
|
}
|
|
|
|
|
|
+#define IXGBE_RSS_64Q_MASK 0x3F
|
|
|
#define IXGBE_RSS_16Q_MASK 0xF
|
|
|
#define IXGBE_RSS_8Q_MASK 0x7
|
|
|
#define IXGBE_RSS_4Q_MASK 0x3
|
|
@@ -604,6 +605,7 @@ static bool ixgbe_set_sriov_queues(struct ixgbe_adapter *adapter)
|
|
|
**/
|
|
|
static bool ixgbe_set_rss_queues(struct ixgbe_adapter *adapter)
|
|
|
{
|
|
|
+ struct ixgbe_hw *hw = &adapter->hw;
|
|
|
struct ixgbe_ring_feature *f;
|
|
|
u16 rss_i;
|
|
|
|
|
@@ -612,7 +614,11 @@ static bool ixgbe_set_rss_queues(struct ixgbe_adapter *adapter)
|
|
|
rss_i = f->limit;
|
|
|
|
|
|
f->indices = rss_i;
|
|
|
- f->mask = IXGBE_RSS_16Q_MASK;
|
|
|
+
|
|
|
+ if (hw->mac.type < ixgbe_mac_X550)
|
|
|
+ f->mask = IXGBE_RSS_16Q_MASK;
|
|
|
+ else
|
|
|
+ f->mask = IXGBE_RSS_64Q_MASK;
|
|
|
|
|
|
/* disable ATR by default, it will be configured below */
|
|
|
adapter->flags &= ~IXGBE_FLAG_FDIR_HASH_CAPABLE;
|