aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/igb/igb_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/igb/igb_main.c')
-rw-r--r--drivers/net/igb/igb_main.c30
1 files changed, 11 insertions, 19 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c
index ab846ec65204..4ecf4dfce9bd 100644
--- a/drivers/net/igb/igb_main.c
+++ b/drivers/net/igb/igb_main.c
@@ -2236,29 +2236,21 @@ static void igb_configure_rx(struct igb_adapter *adapter)
2236 mrqc |= (E1000_MRQC_RSS_FIELD_IPV6_UDP_EX | 2236 mrqc |= (E1000_MRQC_RSS_FIELD_IPV6_UDP_EX |
2237 E1000_MRQC_RSS_FIELD_IPV6_TCP_EX); 2237 E1000_MRQC_RSS_FIELD_IPV6_TCP_EX);
2238 2238
2239
2240 wr32(E1000_MRQC, mrqc); 2239 wr32(E1000_MRQC, mrqc);
2241 2240 } else if (adapter->vfs_allocated_count) {
2242 /* Multiqueue and raw packet checksumming are mutually
2243 * exclusive. Note that this not the same as TCP/IP
2244 * checksumming, which works fine. */
2245 rxcsum = rd32(E1000_RXCSUM);
2246 rxcsum |= E1000_RXCSUM_PCSD;
2247 wr32(E1000_RXCSUM, rxcsum);
2248 } else {
2249 /* Enable multi-queue for sr-iov */ 2241 /* Enable multi-queue for sr-iov */
2250 if (adapter->vfs_allocated_count) 2242 wr32(E1000_MRQC, E1000_MRQC_ENABLE_VMDQ);
2251 wr32(E1000_MRQC, E1000_MRQC_ENABLE_VMDQ);
2252 /* Enable Receive Checksum Offload for TCP and UDP */
2253 rxcsum = rd32(E1000_RXCSUM);
2254 if (adapter->rx_csum)
2255 rxcsum |= E1000_RXCSUM_TUOFL | E1000_RXCSUM_IPPCSE;
2256 else
2257 rxcsum &= ~(E1000_RXCSUM_TUOFL | E1000_RXCSUM_IPPCSE);
2258
2259 wr32(E1000_RXCSUM, rxcsum);
2260 } 2243 }
2261 2244
2245 /* Enable Receive Checksum Offload for TCP and UDP */
2246 rxcsum = rd32(E1000_RXCSUM);
2247 /* Disable raw packet checksumming */
2248 rxcsum |= E1000_RXCSUM_PCSD;
2249 /* Don't need to set TUOFL or IPOFL, they default to 1 */
2250 if (!adapter->rx_csum)
2251 rxcsum &= ~(E1000_RXCSUM_TUOFL | E1000_RXCSUM_IPOFL);
2252 wr32(E1000_RXCSUM, rxcsum);
2253
2262 /* Set the default pool for the PF's first queue */ 2254 /* Set the default pool for the PF's first queue */
2263 igb_configure_vt_default_pool(adapter); 2255 igb_configure_vt_default_pool(adapter);
2264 2256