提交 712d35e0 编写于 作者: L Lihong Yang 提交者: Greg Kroah-Hartman

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

[ Upstream commit babbcc60040abfb7a9e3caa1c58fe182ae73762a ]

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: NLihong Yang <lihong.yang@intel.com>
Tested-by: NAndrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: NJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: NSasha Levin <sashal@kernel.org>
上级 e5d3afbe
...@@ -3884,6 +3884,8 @@ static void i40evf_remove(struct pci_dev *pdev) ...@@ -3884,6 +3884,8 @@ static void i40evf_remove(struct pci_dev *pdev)
if (adapter->watchdog_timer.function) if (adapter->watchdog_timer.function)
del_timer_sync(&adapter->watchdog_timer); del_timer_sync(&adapter->watchdog_timer);
cancel_work_sync(&adapter->adminq_task);
i40evf_free_rss(adapter); i40evf_free_rss(adapter);
if (hw->aq.asq.count) if (hw->aq.asq.count)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册