aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c4
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c20
2 files changed, 14 insertions, 10 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
index cfe5a6af04d0..b3c282d09b18 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c
@@ -619,6 +619,10 @@ static bool ixgbe_set_sriov_queues(struct ixgbe_adapter *adapter)
619 } 619 }
620 620
621#endif 621#endif
622 /* populate TC0 for use by pool 0 */
623 netdev_set_tc_queue(adapter->netdev, 0,
624 adapter->num_rx_queues_per_pool, 0);
625
622 return true; 626 return true;
623} 627}
624 628
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index cdb8502ae473..d8c4c1b90378 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -6571,20 +6571,12 @@ int ixgbe_open(struct net_device *netdev)
6571 goto err_req_irq; 6571 goto err_req_irq;
6572 6572
6573 /* Notify the stack of the actual queue counts. */ 6573 /* Notify the stack of the actual queue counts. */
6574 if (adapter->num_rx_pools > 1) 6574 queues = adapter->num_tx_queues;
6575 queues = adapter->num_rx_queues_per_pool;
6576 else
6577 queues = adapter->num_tx_queues;
6578
6579 err = netif_set_real_num_tx_queues(netdev, queues); 6575 err = netif_set_real_num_tx_queues(netdev, queues);
6580 if (err) 6576 if (err)
6581 goto err_set_queues; 6577 goto err_set_queues;
6582 6578
6583 if (adapter->num_rx_pools > 1 && 6579 queues = adapter->num_rx_queues;
6584 adapter->num_rx_queues > IXGBE_MAX_L2A_QUEUES)
6585 queues = IXGBE_MAX_L2A_QUEUES;
6586 else
6587 queues = adapter->num_rx_queues;
6588 err = netif_set_real_num_rx_queues(netdev, queues); 6580 err = netif_set_real_num_rx_queues(netdev, queues);
6589 if (err) 6581 if (err)
6590 goto err_set_queues; 6582 goto err_set_queues;
@@ -8814,6 +8806,14 @@ int ixgbe_setup_tc(struct net_device *dev, u8 tc)
8814 } else { 8806 } else {
8815 netdev_reset_tc(dev); 8807 netdev_reset_tc(dev);
8816 8808
8809 /* To support macvlan offload we have to use num_tc to
8810 * restrict the queues that can be used by the device.
8811 * By doing this we can avoid reporting a false number of
8812 * queues.
8813 */
8814 if (!tc && adapter->num_rx_pools > 1)
8815 netdev_set_num_tc(dev, 1);
8816
8817 if (adapter->hw.mac.type == ixgbe_mac_82598EB) 8817 if (adapter->hw.mac.type == ixgbe_mac_82598EB)
8818 adapter->hw.fc.requested_mode = adapter->last_lfc_mode; 8818 adapter->hw.fc.requested_mode = adapter->last_lfc_mode;
8819 8819