Re: [PATCH v2] ice: Fix improper handling of refcount in ice_sriov_set_msix_vec_count()

Markus Elfring
2024-09-07T12:40:38Z

…
> +++ 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