ibmvnic: Set real number of rx queues
authorThomas Falcon <tlfalcon@linux.vnet.ibm.com>
Fri, 21 Apr 2017 19:38:40 +0000 (15:38 -0400)
committerDavid S. Miller <davem@davemloft.net>
Mon, 24 Apr 2017 16:52:12 +0000 (12:52 -0400)
Along with 5 TX queues, 5 RX queues are allocated at the beginning of
device probe. However, only the real number of TX queues is set. Configure
the real number of RX queues as well.

Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ibm/ibmvnic.c

index e8c72abfd7accec157f5aff74afd85a7f0f2ed7f..7f4cecbb4b5af18c71aab545d0f9348ffa7cf410 100644 (file)
@@ -560,6 +560,24 @@ static void release_resources(struct ibmvnic_adapter *adapter)
        release_error_buffers(adapter);
 }
 
+static int set_real_num_queues(struct net_device *netdev)
+{
+       struct ibmvnic_adapter *adapter = netdev_priv(netdev);
+       int rc;
+
+       rc = netif_set_real_num_tx_queues(netdev, adapter->req_tx_queues);
+       if (rc) {
+               netdev_err(netdev, "failed to set the number of tx queues\n");
+               return rc;
+       }
+
+       rc = netif_set_real_num_rx_queues(netdev, adapter->req_rx_queues);
+       if (rc)
+               netdev_err(netdev, "failed to set the number of rx queues\n");
+
+       return rc;
+}
+
 static int ibmvnic_open(struct net_device *netdev)
 {
        struct ibmvnic_adapter *adapter = netdev_priv(netdev);
@@ -578,11 +596,9 @@ static int ibmvnic_open(struct net_device *netdev)
        if (rc)
                return rc;
 
-       rc = netif_set_real_num_tx_queues(netdev, adapter->req_tx_queues);
-       if (rc) {
-               dev_err(dev, "failed to set the number of tx queues\n");
-               return -1;
-       }
+       rc = set_real_num_queues(netdev);
+       if (rc)
+               return rc;
 
        rc = init_sub_crq_irqs(adapter);
        if (rc) {