Skip to content

Commit

Permalink
i40evf: cancel workqueue sync for adminq when a VF is removed
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Lihong Yang authored and Jeff Kirsher committed Aug 30, 2018
1 parent 5cba17b commit babbcc6
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions drivers/net/ethernet/intel/i40evf/i40evf_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down

0 comments on commit babbcc6

Please sign in to comment.