… > +++ b/drivers/net/ethernet/intel/ice/ice_sriov.c > @@ -1096,8 +1096,10 @@ int ice_sriov_set_msix_vec_count(struct pci_dev *vf_dev, int msix_vec_count) > return -ENOENT; > > vsi = ice_get_vf_vsi(vf); > - if (!vsi) > + if (!vsi) { > + ice_put_vf(vf); > return -ENOENT; > + } > > prev_msix = vf->num_msix; > prev_queues = vf->num_vf_qs; > @@ -1142,8 +1144,10 @@ int ice_sriov_set_msix_vec_count(struct pci_dev *vf_dev, int msix_vec_count) > vf->num_msix = prev_msix; > vf->num_vf_qs = prev_queues; > vf->first_vector_idx = ice_sriov_get_irqs(pf, vf->num_msix); > - if (vf->first_vector_idx < 0) > + if (vf->first_vector_idx < 0) { > + ice_put_vf(vf); > return -EINVAL; > + } > > if (needs_rebuild) { > ice_vf_reconfig_vsi(vf); Would you like to collaborate with any goto chains according to the desired completion of exception handling? Regards, Markus