On Wed, 24 Jun 2026 08:57:41 +0000
Samar Yadav <[email protected]> wrote:

> @@ -865,9 +913,15 @@ virtio_user_dev_uninit(struct virtio_user_dev *dev)
>  
>       rte_mem_event_callback_unregister(VIRTIO_USER_MEM_EVENT_CLB_NAME, dev);
>  
> +     /*
> +      * Serialize closing/freeing the kick/call fd arrays against the MP
> +      * handler, which reads them under the same lock to share them with
> +      * secondary processes.
> +      */
> +     pthread_mutex_lock(&dev->mutex);
>       virtio_user_dev_uninit_notify(dev);
> -
>       virtio_user_free_vrings(dev);
> +     pthread_mutex_unlock(&dev->mutex);
>  
>       free(dev->ifname);

Related bug. virtio_user is not initializing mutex as safe between
processes. See rte_thread_mutex_init_shared() vs pthread_mutex_init()

Reply via email to