aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Nunley <nicholasx.d.nunley@intel.com>2010-02-17 01:03:38 +0000
committerDavid S. Miller <davem@davemloft.net>2010-02-17 13:21:35 -0800
commite6bdb6fefc590ad2fb5f79e1d1d3660afbc7c8ff (patch)
treede374c6ccde506f8311fdd43343debe967b5d97f
parentabe1c3638ccf8b68536afb52b111f6ad46d1cf71 (diff)
downloadkernel_samsung_tuna-e6bdb6fefc590ad2fb5f79e1d1d3660afbc7c8ff.zip
kernel_samsung_tuna-e6bdb6fefc590ad2fb5f79e1d1d3660afbc7c8ff.tar.gz
kernel_samsung_tuna-e6bdb6fefc590ad2fb5f79e1d1d3660afbc7c8ff.tar.bz2
igb: only support SRRCTL_DROP_EN when using multiple queues
The SRRCTL.DROP_EN bit should only be set when we are supporting multiple queues. This bit is meant to prevent head of line blocking and is unnecessary in the single queue case. Signed-off-by: Nicholas Nunley <nicholasx.d.nunley@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/igb/igb_main.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index 4ccc7fc..b989b34 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -2595,6 +2595,9 @@ void igb_configure_rx_ring(struct igb_adapter *adapter,
E1000_SRRCTL_BSIZEPKT_SHIFT;
srrctl |= E1000_SRRCTL_DESCTYPE_ADV_ONEBUF;
}
+ /* Only set Drop Enable if we are supporting multiple queues */
+ if (adapter->vfs_allocated_count || adapter->num_rx_queues > 1)
+ srrctl |= E1000_SRRCTL_DROP_EN;
wr32(E1000_SRRCTL(reg_idx), srrctl);