i40evf: add missing rtnl_lock() around i40evf_set_interrupt_capability
authorJacob Keller <jacob.e.keller@intel.com>
Wed, 27 Jul 2016 19:02:33 +0000 (12:02 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 18 Aug 2016 18:43:11 +0000 (11:43 -0700)
The function calls netif_set_real_num_(tx|rx)_queues, both of which
should be done only under rntl lock. Unfortunately the
i40evf_init_task did not hold the rtnl_lock as necessary. This patch
adds the locking needed.

Change-ID: Ib72a21c3ce22b71a226b16f9bbe0f5f8cc3e849b
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40evf/i40evf_main.c

index 600fb9c4a7f0b74f532fa9b75e0052056a9ff784..d1d4a653686a30f74f4bef1f7c196547a9fbf335 100644 (file)
@@ -1420,7 +1420,9 @@ int i40evf_init_interrupt_scheme(struct i40evf_adapter *adapter)
 {
        int err;
 
+       rtnl_lock();
        err = i40evf_set_interrupt_capability(adapter);
+       rtnl_unlock();
        if (err) {
                dev_err(&adapter->pdev->dev,
                        "Unable to setup interrupt capabilities\n");