@@ -14213,8 +14213,7 @@ int i40e_vsi_release(struct i40e_vsi *vsi)
14213
14213
}
14214
14214
set_bit (__I40E_VSI_RELEASING , vsi -> state );
14215
14215
uplink_seid = vsi -> uplink_seid ;
14216
- if (vsi -> type == I40E_VSI_MAIN )
14217
- i40e_devlink_destroy_port (pf );
14216
+
14218
14217
if (vsi -> type != I40E_VSI_SRIOV ) {
14219
14218
if (vsi -> netdev_registered ) {
14220
14219
vsi -> netdev_registered = false;
@@ -14228,6 +14227,9 @@ int i40e_vsi_release(struct i40e_vsi *vsi)
14228
14227
i40e_vsi_disable_irq (vsi );
14229
14228
}
14230
14229
14230
+ if (vsi -> type == I40E_VSI_MAIN )
14231
+ i40e_devlink_destroy_port (pf );
14232
+
14231
14233
spin_lock_bh (& vsi -> mac_filter_hash_lock );
14232
14234
14233
14235
/* clear the sync flag on all filters */
@@ -14402,14 +14404,14 @@ static struct i40e_vsi *i40e_vsi_reinit_setup(struct i40e_vsi *vsi)
14402
14404
14403
14405
err_rings :
14404
14406
i40e_vsi_free_q_vectors (vsi );
14405
- if (vsi -> type == I40E_VSI_MAIN )
14406
- i40e_devlink_destroy_port (pf );
14407
14407
if (vsi -> netdev_registered ) {
14408
14408
vsi -> netdev_registered = false;
14409
14409
unregister_netdev (vsi -> netdev );
14410
14410
free_netdev (vsi -> netdev );
14411
14411
vsi -> netdev = NULL ;
14412
14412
}
14413
+ if (vsi -> type == I40E_VSI_MAIN )
14414
+ i40e_devlink_destroy_port (pf );
14413
14415
i40e_aq_delete_element (& pf -> hw , vsi -> seid , NULL );
14414
14416
err_vsi :
14415
14417
i40e_vsi_clear (vsi );
0 commit comments