Re: [PATCH iwl-net v2 2/2] ice: release the VF MSI-X window when ice_start_vfs() fails
From: Linkui Xiao
Date: Mon Sep 28 2026 - 20:58:30 EST
On 2026/9/28 21:08, Tomasz Lichwala wrote:
On 28.09.2026 08:53, Linkui Xiao wrote:
diff --git a/drivers/net/ethernet/intel/ice/ice_sriov.c b/drivers/net/ethernet/intel/ice/ice_sriov.c
index 95abc6704820..df84dbe12cba 100644
--- a/drivers/net/ethernet/intel/ice/ice_sriov.c
+++ b/drivers/net/ethernet/intel/ice/ice_sriov.c
@@ -446,8 +446,10 @@ static int ice_init_vf_vsi_res(struct ice_vf *vf)
return -ENOMEM;
vsi = ice_vf_vsi_setup(vf);
- if (!vsi)
- return -ENOMEM;
+ if (!vsi) {
+ err = -ENOMEM;
+ goto free_irqs;
+ }
err = ice_vf_init_host_cfg(vf, vsi);
if (err)
@@ -457,6 +459,9 @@ static int ice_init_vf_vsi_res(struct ice_vf *vf)
release_vsi:
ice_vf_vsi_release(vf);
+free_irqs:
+ ice_virt_free_irqs(pf, vf->first_vector_idx, vf->num_msix);
+
return err;
}
@@ -490,6 +495,8 @@ static int ice_start_vfs(struct ice_pf *pf)
dev_err(ice_pf_to_dev(pf), "Failed to attach VF %d to eswitch, error %d",
vf->vf_id, retval);
ice_vf_vsi_release(vf);
+ ice_virt_free_irqs(pf, vf->first_vector_idx,
+ vf->num_msix);
Nit: For consistency with the teardown: loop (which frees IRQs before releasing the VSI), consider swapping the order here too - currently this branch releases the VSI first, then frees IRQs, the opposite order. Not functionally significant, just readability.
Thanks for the review, Tomasz.
Agreed this is only a readability nit. The two calls are independent and
the current order is functionally safe, so I'll keep v2 as is.
No v3 planned for this change.
Thanks,
Linkui
goto teardown;
}
}
Reviewed-by: Tomasz Lichwala <tomasz.lichwala@xxxxxxxxxxxxxxx>