mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
i40evf: don't give up
When the VF driver is unable to communicate with the PF, it just gives up and never tries again. Aside from the obvious character flaw that this shows, it's also a lousy user experience. When PF communications fail, wait five seconds, and try again. And again. Don't give up, little VF driver! Your prince will come! Change-ID: Ia1378a39879883563b8faffce819f375821f9585 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>
This commit is contained in:
parent
5d3465a1e4
commit
b9029e941d
1 changed files with 5 additions and 2 deletions
|
@ -2357,9 +2357,12 @@ static void i40evf_init_task(struct work_struct *work)
|
|||
err:
|
||||
/* Things went into the weeds, so try again later */
|
||||
if (++adapter->aq_wait_count > I40EVF_AQ_MAX_ERR) {
|
||||
dev_err(&pdev->dev, "Failed to communicate with PF; giving up\n");
|
||||
dev_err(&pdev->dev, "Failed to communicate with PF; waiting before retry\n");
|
||||
adapter->flags |= I40EVF_FLAG_PF_COMMS_FAILED;
|
||||
return; /* do not reschedule */
|
||||
i40evf_shutdown_adminq(hw);
|
||||
adapter->state = __I40EVF_STARTUP;
|
||||
schedule_delayed_work(&adapter->init_task, HZ * 5);
|
||||
return;
|
||||
}
|
||||
schedule_delayed_work(&adapter->init_task, HZ);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue