i40e: Tell the stack about our actual number of queues
authorAnjali Singhai Jain <anjali.singhai@intel.com>
Tue, 26 Nov 2013 10:49:14 +0000 (10:49 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 16 Dec 2013 08:49:11 +0000 (00:49 -0800)
Call the netif_set_real* functions in order to make sure
the stack knows about how many queues we have, in order
for RFS/RPS/XFS to work correctly.

Change-Id: Ib7a7b2792f80c5eef210dedf42cc6607d63953d2
Signed-off-by: Anjali Singhai Jain <anjali.singhai@intel.com>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_main.c

index a6291e2..9dc5829 100644 (file)
@@ -3966,6 +3966,15 @@ static int i40e_open(struct net_device *netdev)
        if (err)
                goto err_setup_rx;
 
+       /* Notify the stack of the actual queue counts. */
+       err = netif_set_real_num_tx_queues(netdev, pf->num_tx_queues);
+       if (err)
+               goto err_set_queues;
+
+       err = netif_set_real_num_rx_queues(netdev, pf->num_rx_queues);
+       if (err)
+               goto err_set_queues;
+
        err = i40e_up_complete(vsi);
        if (err)
                goto err_up_complete;
@@ -3982,6 +3991,7 @@ static int i40e_open(struct net_device *netdev)
 
 err_up_complete:
        i40e_down(vsi);
+err_set_queues:
        i40e_vsi_free_irq(vsi);
 err_setup_rx:
        i40e_vsi_free_rx_resources(vsi);