On 2015/08/12 17:02, Ouyang Changchun wrote:
> diff --git a/lib/librte_vhost/vhost_user/virtio-net-user.h 
> b/lib/librte_vhost/vhost_user/virtio-net-user.h
> index df24860..2429836 100644
> --- a/lib/librte_vhost/vhost_user/virtio-net-user.h
> +++ b/lib/librte_vhost/vhost_user/virtio-net-user.h
> @@ -46,4 +46,6 @@ void user_set_vring_kick(struct vhost_device_ctx, struct 
> VhostUserMsg *);
>
>  /*
> @@ -206,9 +213,17 @@ cleanup_device(struct virtio_net *dev)
>  static void
>  free_device(struct virtio_net_config_ll *ll_dev)
>  {
> -     /* Free any malloc'd memory */
> -     rte_free(ll_dev->dev.virtqueue[VIRTIO_RXQ]);
> -     rte_free(ll_dev->dev.virtqueue[VIRTIO_TXQ]);
> +     uint32_t qp_idx;
> +
> +     /*
> +      * Free any malloc'd memory.
> +      */
> +     /* Free every queue pair. */
> +     for (qp_idx = 0; qp_idx < ll_dev->dev.virt_qp_nb; qp_idx++) {
> +             uint32_t virt_rx_q_idx = qp_idx * VIRTIO_QNUM + VIRTIO_RXQ;
> +             rte_free(ll_dev->dev.virtqueue[virt_rx_q_idx]);

Hi Changchun,

Should we free tx queue also here?

Thanks,
Tetsuya

> +     }
> +     rte_free(ll_dev->dev.virtqueue);
>       rte_free(ll_dev);
>  }
>  
>

Reply via email to