i40e: hold the rtnl lock on clearing interrupt scheme
[ Upstream commit 5cba17b14182696d6bb0ec83a1d087933f252241 ] Hold the rtnl lock when we're clearing interrupt scheme in i40e_shutdown and in i40e_remove. Signed-off-by: Patryk Małek <patryk.malek@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
6c57a63cb8
commit
0d4ee36426
@ -11360,6 +11360,7 @@ static void i40e_remove(struct pci_dev *pdev)
|
||||
mutex_destroy(&hw->aq.asq_mutex);
|
||||
|
||||
/* Clear all dynamic memory lists of rings, q_vectors, and VSIs */
|
||||
rtnl_lock();
|
||||
i40e_clear_interrupt_scheme(pf);
|
||||
for (i = 0; i < pf->num_alloc_vsi; i++) {
|
||||
if (pf->vsi[i]) {
|
||||
@ -11368,6 +11369,7 @@ static void i40e_remove(struct pci_dev *pdev)
|
||||
pf->vsi[i] = NULL;
|
||||
}
|
||||
}
|
||||
rtnl_unlock();
|
||||
|
||||
for (i = 0; i < I40E_MAX_VEB; i++) {
|
||||
kfree(pf->veb[i]);
|
||||
@ -11513,7 +11515,13 @@ static void i40e_shutdown(struct pci_dev *pdev)
|
||||
wr32(hw, I40E_PFPM_WUFC,
|
||||
(pf->wol_en ? I40E_PFPM_WUFC_MAG_MASK : 0));
|
||||
|
||||
/* Since we're going to destroy queues during the
|
||||
* i40e_clear_interrupt_scheme() we should hold the RTNL lock for this
|
||||
* whole section
|
||||
*/
|
||||
rtnl_lock();
|
||||
i40e_clear_interrupt_scheme(pf);
|
||||
rtnl_unlock();
|
||||
|
||||
if (system_state == SYSTEM_POWER_OFF) {
|
||||
pci_wake_from_d3(pdev, pf->wol_en);
|
||||
|
Loading…
x
Reference in New Issue
Block a user