[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] vdpa net: zero vhost_vdpa iova_tree pointer at cleanup
From: |
Jason Wang |
Subject: |
Re: [PATCH] vdpa net: zero vhost_vdpa iova_tree pointer at cleanup |
Date: |
Thu, 14 Sep 2023 11:23:37 +0800 |
On Wed, Sep 13, 2023 at 8:34 PM Eugenio Pérez <eperezma@redhat.com> wrote:
>
> Not zeroing it causes a SIGSEGV if the live migration is cancelled, at
> net device restart.
>
> This is caused because CVQ tries to reuse the iova_tree that is present
> in the first vhost_vdpa device at the end of vhost_vdpa_net_cvq_start.
> As a consequence, it tries to access an iova_tree that has been already
> free.
>
> Fixes: 00ef422e9fbf ("vdpa net: move iova tree creation from init to start")
> Reported-by: Yanhui Ma <yama@redhat.com>
> Signed-off-by: Eugenio Pérez <eperezma@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
Thanks
> ---
> net/vhost-vdpa.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
> index 34202ca009..1714ff4b11 100644
> --- a/net/vhost-vdpa.c
> +++ b/net/vhost-vdpa.c
> @@ -385,6 +385,8 @@ static void vhost_vdpa_net_client_stop(NetClientState *nc)
> dev = s->vhost_vdpa.dev;
> if (dev->vq_index + dev->nvqs == dev->vq_index_end) {
> g_clear_pointer(&s->vhost_vdpa.iova_tree, vhost_iova_tree_delete);
> + } else {
> + s->vhost_vdpa.iova_tree = NULL;
> }
> }
>
> --
> 2.39.3
>