iavf: free q_vectors before queues in iavf_disable_vf
[ Upstream commit 89f22f129696ab53cfbc608e0a2184d0fea46ac1 ]
iavf_free_queues() clears adapter->num_active_queues, which
iavf_free_q_vectors() relies on, so swap the order of these two function
calls in iavf_disable_vf(). This resolves a panic encountered when the
interface is disabled and then later brought up again after PF
communication is restored.
Fixes: 65c7006f23
("i40evf: assign num_active_queues inside i40evf_alloc_queues")
Signed-off-by: Nicholas Nunley <nicholas.d.nunley@intel.com>
Tested-by: Tony Brelinski <tony.brelinski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
84a13bfe27
commit
78638b4713
@@ -2047,8 +2047,8 @@ static void iavf_disable_vf(struct iavf_adapter *adapter)
|
|||||||
|
|
||||||
iavf_free_misc_irq(adapter);
|
iavf_free_misc_irq(adapter);
|
||||||
iavf_reset_interrupt_capability(adapter);
|
iavf_reset_interrupt_capability(adapter);
|
||||||
iavf_free_queues(adapter);
|
|
||||||
iavf_free_q_vectors(adapter);
|
iavf_free_q_vectors(adapter);
|
||||||
|
iavf_free_queues(adapter);
|
||||||
memset(adapter->vf_res, 0, IAVF_VIRTCHNL_VF_RESOURCE_SIZE);
|
memset(adapter->vf_res, 0, IAVF_VIRTCHNL_VF_RESOURCE_SIZE);
|
||||||
iavf_shutdown_adminq(&adapter->hw);
|
iavf_shutdown_adminq(&adapter->hw);
|
||||||
adapter->netdev->flags &= ~IFF_UP;
|
adapter->netdev->flags &= ~IFF_UP;
|
||||||
|
Reference in New Issue
Block a user