igb: fix i350 SR-IOV failture
authorWilliams, Mitch A <mitch.a.williams@intel.com>
Tue, 7 Jun 2011 21:22:57 +0000 (14:22 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 7 Jun 2011 21:22:57 +0000 (14:22 -0700)
When SR-IOV is enabled, i350 devices fail to pass traffic. This is due to
the driver attempting to enable RSS on the PF device, which is not
supported by the i350.

When max_vfs is specified on an i350 adapter, set the number of RSS queues
to 1.

This issue affects 2.6.39 as well.

CC: stable@kernel.org
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/igb/igb_main.c

index 18fccf913635e671fbca0d321c73aa4c484e2f42..2c28621eb30b5aa02e0e7fe6d214f5e4c0b60f72 100644 (file)
@@ -2373,6 +2373,9 @@ static int __devinit igb_sw_init(struct igb_adapter *adapter)
        }
 #endif /* CONFIG_PCI_IOV */
        adapter->rss_queues = min_t(u32, IGB_MAX_RX_QUEUES, num_online_cpus());
+       /* i350 cannot do RSS and SR-IOV at the same time */
+       if (hw->mac.type == e1000_i350 && adapter->vfs_allocated_count)
+               adapter->rss_queues = 1;
 
        /*
         * if rss_queues > 4 or vfs are going to be allocated with rss_queues