On Mon, Mar 15, 2021 at 4:20 PM Maxime Coquelin
<maxime.coque...@redhat.com> wrote:
> @@ -604,15 +604,22 @@ virtio_init_queue(struct rte_eth_dev *dev, uint16_t 
> queue_idx)
>
>         if (VIRTIO_OPS(hw)->setup_queue(hw, vq) < 0) {
>                 PMD_INIT_LOG(ERR, "setup_queue failed");
> -               return -EINVAL;
> +               ret = -EINVAL;
> +               goto clean_vq;
>         }
>
>         return 0;
>
> -fail_q_alloc:
> -       rte_free(sw_ring);
> +clean_vq:
> +       hw->cvq = NULL;
> +
> +       if (sw_ring)
> +               rte_free(sw_ring);

Nit: rte_free handles NULL fine, you can remove the test, the same way
it was done before.

> +free_hdr_mz:
>         rte_memzone_free(hdr_mz);
> +free_mz:
>         rte_memzone_free(mz);
> +free_vq:
>         rte_free(vq);
>
>         return ret;

-- 
David Marchand

Reply via email to