ixgbe: reset before SRIOV init to avoid mailbox issues
Enabling SRIOV while the ixgbevf driver is loaded will result in all mailbox requests from ixgbevf_open() being rejected by ixgbe because adapter->clear_to_send is set to false on reset. Call ixgbe_sriov_reinit() before pci_enable_sriov() to make sure that mailbox requests are handled from the time ixgbevf is loaded. Reported-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:

committed by
Jeff Kirsher

parent
e24fcf2895
commit
0c339bf9ac
@@ -329,13 +329,15 @@ static int ixgbe_pci_sriov_enable(struct pci_dev *dev, int num_vfs)
|
||||
for (i = 0; i < adapter->num_vfs; i++)
|
||||
ixgbe_vf_configuration(dev, (i | 0x10000000));
|
||||
|
||||
/* reset before enabling SRIOV to avoid mailbox issues */
|
||||
ixgbe_sriov_reinit(adapter);
|
||||
|
||||
err = pci_enable_sriov(dev, num_vfs);
|
||||
if (err) {
|
||||
e_dev_warn("Failed to enable PCI sriov: %d\n", err);
|
||||
return err;
|
||||
}
|
||||
ixgbe_get_vfs(adapter);
|
||||
ixgbe_sriov_reinit(adapter);
|
||||
|
||||
return num_vfs;
|
||||
#else
|
||||
|
Reference in New Issue
Block a user