From 261f9dc602d78a8c739c4ce4a62d8399160e24c0 Mon Sep 17 00:00:00 2001 From: Alexander Duyck Date: Thu, 1 Jul 2010 20:01:05 +0000 Subject: [PATCH] --- yaml --- r: 203367 b: refs/heads/master c: 4478a9cdf007a0418755a8a4016af8352fb1c1f3 h: refs/heads/master i: 203365: 0de3875a13b2713fdda85378b93f472fb9a0ff29 203363: 356b0669cb4260fccbc9004f6ac51863493836e9 203359: fe77f838ee83d75a9e630a1d516dcb1f9d7b95ab v: v3 --- [refs] | 2 +- trunk/drivers/net/igb/igb_main.c | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index d0b1dc498316..32ac4220810f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 39827be26b36ef9cdbc661c92a269e0484cd9ef5 +refs/heads/master: 4478a9cdf007a0418755a8a4016af8352fb1c1f3 diff --git a/trunk/drivers/net/igb/igb_main.c b/trunk/drivers/net/igb/igb_main.c index 9cb04e29ad13..94656179441d 100644 --- a/trunk/drivers/net/igb/igb_main.c +++ b/trunk/drivers/net/igb/igb_main.c @@ -2717,14 +2717,16 @@ static void igb_setup_mrqc(struct igb_adapter *adapter) } igb_vmm_control(adapter); - mrqc |= (E1000_MRQC_RSS_FIELD_IPV4 | - E1000_MRQC_RSS_FIELD_IPV4_TCP); - mrqc |= (E1000_MRQC_RSS_FIELD_IPV6 | - E1000_MRQC_RSS_FIELD_IPV6_TCP); - mrqc |= (E1000_MRQC_RSS_FIELD_IPV4_UDP | - E1000_MRQC_RSS_FIELD_IPV6_UDP); - mrqc |= (E1000_MRQC_RSS_FIELD_IPV6_UDP_EX | - E1000_MRQC_RSS_FIELD_IPV6_TCP_EX); + /* + * Generate RSS hash based on TCP port numbers and/or + * IPv4/v6 src and dst addresses since UDP cannot be + * hashed reliably due to IP fragmentation + */ + mrqc |= E1000_MRQC_RSS_FIELD_IPV4 | + E1000_MRQC_RSS_FIELD_IPV4_TCP | + E1000_MRQC_RSS_FIELD_IPV6 | + E1000_MRQC_RSS_FIELD_IPV6_TCP | + E1000_MRQC_RSS_FIELD_IPV6_TCP_EX; wr32(E1000_MRQC, mrqc); }