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