i40evf: enable bus master after reset
authorMitch Williams <mitch.a.williams@intel.com>
Wed, 23 Dec 2015 20:05:52 +0000 (12:05 -0800)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Wed, 17 Feb 2016 03:14:56 +0000 (19:14 -0800)
If the VF is reset via VFLR, the device will be knocked out of bus
master mode, and the driver will fail to recover from the reset. Fix
this by enabling bus mastering after every reset. In a non-VFLR case,
the bus master bit will not be disabled, and this call will have no effect.

Change-ID: Id515859ac7a691db478222228add6d149e96801a
Signed-off-by: Mitch Williams <mitch.a.williams@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 66964eb6b7de3d0222b4b19e00c7be5c7ea0871b..933f1fc5dfbbde4346038e05e6f4a527d5fbbbc9 100644 (file)
@@ -1837,6 +1837,7 @@ static void i40evf_reset_task(struct work_struct *work)
                        break;
                msleep(I40EVF_RESET_WAIT_MS);
        }
+       pci_set_master(adapter->pdev);
        /* extra wait to make sure minimum wait is met */
        msleep(I40EVF_RESET_WAIT_MS);
        if (i == I40EVF_RESET_WAIT_COUNT) {