]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
i40evf: don't configure unused RSS queues
authorMitch Williams <mitch.a.williams@intel.com>
Tue, 23 Jun 2015 00:26:38 +0000 (17:26 -0700)
committerSantosh Shilimkar <santosh.shilimkar@oracle.com>
Fri, 28 Aug 2015 15:11:49 +0000 (08:11 -0700)
Orabug: 21570582

The driver will only configure as many queues as there are available
CPUs, up the maximum number of queues. However, it always configures
RSS as though it is using the maximum number of queues. This can cause
the device to drop a lot of RX traffic, as the packets get assigned to
nonfunctional queues.

Fix this by only configuring RSS with the number of active queues.

Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
(cherry picked from commit 40746eb14c6b44f4d635c2f4cf8c67550db9b3ab)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
drivers/net/ethernet/intel/i40evf/i40evf_main.c

index 5c73374c7f22c00620648ab09f45b878be0182cf..4ab4ebba07a18e5b1b0539cf0c0b8a7122f6fdc2 100644 (file)
@@ -1461,7 +1461,7 @@ static void i40evf_configure_rss(struct i40evf_adapter *adapter)
        for (i = 0; i <= I40E_VFQF_HLUT_MAX_INDEX; i++) {
                lut = 0;
                for (j = 0; j < 4; j++) {
-                       if (cqueue == adapter->vsi_res->num_queue_pairs)
+                       if (cqueue == adapter->num_active_queues)
                                cqueue = 0;
                        lut |= ((cqueue) << (8 * j));
                        cqueue++;