diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c index f1166efd8eb7..0c9adeffbe46 100644 --- a/drivers/net/ethernet/ibm/ibmvnic.c +++ b/drivers/net/ethernet/ibm/ibmvnic.c @@ -484,7 +484,6 @@ static void release_rx_pools(struct ibmvnic_adapter *adapter) kfree(adapter->rx_pool); adapter->rx_pool = NULL; - adapter->num_active_rx_scrqs = 0; } static int init_rx_pools(struct net_device *netdev) @@ -509,8 +508,6 @@ static int init_rx_pools(struct net_device *netdev) return -1; } - adapter->num_active_rx_scrqs = 0; - for (i = 0; i < rxadd_subcrqs; i++) { rx_pool = &adapter->rx_pool[i]; @@ -554,8 +551,6 @@ static int init_rx_pools(struct net_device *netdev) rx_pool->next_free = 0; } - adapter->num_active_rx_scrqs = rxadd_subcrqs; - return 0; } @@ -624,7 +619,6 @@ static void release_tx_pools(struct ibmvnic_adapter *adapter) kfree(adapter->tx_pool); adapter->tx_pool = NULL; - adapter->num_active_tx_scrqs = 0; } static int init_tx_pools(struct net_device *netdev) @@ -641,8 +635,6 @@ static int init_tx_pools(struct net_device *netdev) if (!adapter->tx_pool) return -1; - adapter->num_active_tx_scrqs = 0; - for (i = 0; i < tx_subcrqs; i++) { tx_pool = &adapter->tx_pool[i]; @@ -690,8 +682,6 @@ static int init_tx_pools(struct net_device *netdev) tx_pool->producer_index = 0; } - adapter->num_active_tx_scrqs = tx_subcrqs; - return 0; } @@ -991,6 +981,10 @@ static int init_resources(struct ibmvnic_adapter *adapter) return rc; rc = init_tx_pools(netdev); + + adapter->num_active_tx_scrqs = adapter->req_tx_queues; + adapter->num_active_rx_scrqs = adapter->req_rx_queues; + return rc; } @@ -1692,6 +1686,9 @@ static int do_reset(struct ibmvnic_adapter *adapter, release_tx_pools(adapter); init_rx_pools(netdev); init_tx_pools(netdev); + + adapter->num_active_tx_scrqs = adapter->req_tx_queues; + adapter->num_active_rx_scrqs = adapter->req_rx_queues; } else { rc = reset_tx_pools(adapter); if (rc)