i40evf: cancel workqueue sync for adminq when a VF is removed

If a VF is being removed, there is no need to continue with the
workqueue sync for the adminq task, thus cancel it. Without this call,
when VFs are created and removed right away, there might be a chance for
the driver to crash with events stuck in the adminq.

Signed-off-by: Lihong Yang <lihong.yang@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:
Lihong Yang 2018-08-28 10:16:08 -07:00 committed by Jeff Kirsher
parent 5cba17b141
commit babbcc6004

View File

@ -3910,6 +3910,8 @@ static void i40evf_remove(struct pci_dev *pdev)
if (adapter->watchdog_timer.function)
del_timer_sync(&adapter->watchdog_timer);
cancel_work_sync(&adapter->adminq_task);
i40evf_free_rss(adapter);
if (hw->aq.asq.count)