igb: do not re-init SR-IOV during probe
authorStefan Assmann <sassmann@kpanic.de>
Fri, 10 Jul 2015 13:01:12 +0000 (15:01 +0200)
committerSasha Levin <sasha.levin@oracle.com>
Wed, 28 Oct 2015 02:14:21 +0000 (22:14 -0400)
[ Upstream commit 6423fc34160939142d72ffeaa2db6408317f54df ]

During driver probing the following code path is triggered.
igb_probe
->igb_sw_init
  ->igb_probe_vfs
    ->igb_pci_enable_sriov
      ->igb_sriov_reinit

Doing the SR-IOV re-init is not necessary during probing since we're
starting from scratch. Here we can call igb_enable_sriov() right away.

Running igb_sriov_reinit() during igb_probe() also seems to cause
occasional packet loss on some onboard 82576 NICs. Reproduced on
Dell and HP servers with onboard 82576 NICs.
Example:
Intel Corporation 82576 Gigabit Network Connection [8086:10c9] (rev 01)
Subsystem: Dell Device [1028:0481]

Signed-off-by: Stefan Assmann <sassmann@kpanic.de>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
drivers/net/ethernet/intel/igb/igb_main.c

index 323c6706f3722e0c3751a941d3afaaddd455afd1..e0f36647d3dd6d2e4e2ba3ff9645db3d62cd55df 100644 (file)
@@ -2867,7 +2867,7 @@ static void igb_probe_vfs(struct igb_adapter *adapter)
                return;
 
        pci_sriov_set_totalvfs(pdev, 7);
-       igb_pci_enable_sriov(pdev, max_vfs);
+       igb_enable_sriov(pdev, max_vfs);
 
 #endif /* CONFIG_PCI_IOV */
 }