OSDN Git Service

net: aquantia: fix initialization of RSS table
authorDmitry Bogdanov <dmitry.bogdanov@aquantia.com>
Fri, 7 Dec 2018 14:00:17 +0000 (14:00 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 7 Dec 2018 20:49:09 +0000 (12:49 -0800)
Now RSS indirection table is initialized before setting up the number of
hw queues, consequently the table may be filled by non existing queues.
This patch moves the initialization when the number of hw queues is
known.

Signed-off-by: Dmitry Bogdanov <dmitry.bogdanov@aquantia.com>
Signed-off-by: Igor Russkikh <igor.russkikh@aquantia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/aquantia/atlantic/aq_nic.c

index d617289..0147c03 100644 (file)
@@ -84,8 +84,6 @@ void aq_nic_cfg_start(struct aq_nic_s *self)
 
        cfg->is_lro = AQ_CFG_IS_LRO_DEF;
 
-       aq_nic_rss_init(self, cfg->num_rss_queues);
-
        /*descriptors */
        cfg->rxds = min(cfg->aq_hw_caps->rxds_max, AQ_CFG_RXDS_DEF);
        cfg->txds = min(cfg->aq_hw_caps->txds_max, AQ_CFG_TXDS_DEF);
@@ -106,6 +104,8 @@ void aq_nic_cfg_start(struct aq_nic_s *self)
 
        cfg->num_rss_queues = min(cfg->vecs, AQ_CFG_NUM_RSS_QUEUES_DEF);
 
+       aq_nic_rss_init(self, cfg->num_rss_queues);
+
        cfg->irq_type = aq_pci_func_get_irq_type(self);
 
        if ((cfg->irq_type == AQ_HW_IRQ_LEGACY) ||