Commit 163de42e authored by Alexander Duyck's avatar Alexander Duyck Committed by David S. Miller

ixgbe: set queue0 for srrctl configuration correctly for DCB

The current configuration is not setting queue 0 correctly for DCB
configurations.  As a result unconfigured queues are being used to setup
the SRRCTL register rx buffer len sizes.
Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent afafd5b0
...@@ -1740,7 +1740,18 @@ static void ixgbe_configure_srrctl(struct ixgbe_adapter *adapter, int index) ...@@ -1740,7 +1740,18 @@ static void ixgbe_configure_srrctl(struct ixgbe_adapter *adapter, int index)
unsigned long mask; unsigned long mask;
if (adapter->hw.mac.type == ixgbe_mac_82599EB) { if (adapter->hw.mac.type == ixgbe_mac_82599EB) {
queue0 = index; if (adapter->flags & IXGBE_FLAG_DCB_ENABLED) {
int dcb_i = adapter->ring_feature[RING_F_DCB].indices;
if (dcb_i == 8)
queue0 = index >> 4;
else if (dcb_i == 4)
queue0 = index >> 5;
else
dev_err(&adapter->pdev->dev, "Invalid DCB "
"configuration\n");
} else {
queue0 = index;
}
} else { } else {
mask = (unsigned long) adapter->ring_feature[RING_F_RSS].mask; mask = (unsigned long) adapter->ring_feature[RING_F_RSS].mask;
queue0 = index & mask; queue0 = index & mask;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment