qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 2/9] vhost-vdpa: mandate vhostdev


From: Laurent Vivier
Subject: Re: [PATCH 2/9] vhost-vdpa: mandate vhostdev
Date: Wed, 9 Sep 2020 10:42:05 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

On 31/08/2020 10:27, Jason Wang wrote:
> vhost-dev is mandatory for vhost-vdpa to be initialized otherwise
> net_vhost_vdpa_init will pass an uninitialized pointer to qemu_open()
> which will lead a SIGSEV:
> 
> #0  0x0000555555c3a640 in strstart (str=str@entry=0x0, 
> val=val@entry=0x555555dbcb65 "/dev/fdset/", ptr=ptr@entry=0x7fffffffdfb8) at 
> ../util/cutils.c:77
> #1  0x0000555555c572a7 in qemu_open (name=name@entry=0x0, 
> flags=flags@entry=2) at ../util/osdep.c:294
> #2  0x000055555584314a in net_vhost_vdpa_init (device=0x555555c81baa 
> "vhost-vdpa", vhostdev=0x0, name=0x555556396600 "hn0", peer=0x0) at 
> ../net/vhost-vdpa.c:187
> #3  0x000055555584314a in net_init_vhost_vdpa (netdev=<optimized out>, 
> name=0x555556396600 "hn0", peer=0x0, errp=<optimized out>) at 
> ../net/vhost-vdpa.c:227
> #4  0x000055555587e8c9 in net_client_init1 (netdev=0x555556398790, 
> is_netdev=is_netdev@entry=true, errp=errp@entry=0x7fffffffe290) at 
> ../net/net.c:1008
> #5  0x000055555587ecc7 in net_client_init (opts=0x555556192ff0, 
> is_netdev=<optimized out>, errp=0x7fffffffe290) at ../net/net.c:1113
> #6  0x0000555555c33082 in qemu_opts_foreach
>     (list=<optimized out>, func=func@entry=0x55555587ed50 <net_init_netdev>, 
> opaque=opaque@entry=0x0, errp=errp@entry=0x7fffffffe290) at 
> ../util/qemu-option.c:1172
> #7  0x0000555555880057 in net_init_clients (errp=errp@entry=0x7fffffffe290) 
> at ../net/net.c:1494
> #8  0x0000555555a7f8e9 in qemu_init (argc=<optimized out>, argv=<optimized 
> out>, envp=<optimized out>) at ../softmmu/vl.c:4250
> #9  0x00005555557f26cd in main (argc=<optimized out>, argv=<optimized out>, 
> envp=<optimized out>) at ../softmmu/main.c:49
> 
> Cc: qemu-stable@nongnu.org
> Signed-off-by: Jason Wang <jasowang@redhat.com>
> ---
>  net/vhost-vdpa.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/net/vhost-vdpa.c b/net/vhost-vdpa.c
> index bc0e0d2d35..b7221beaa1 100644
> --- a/net/vhost-vdpa.c
> +++ b/net/vhost-vdpa.c
> @@ -206,7 +206,7 @@ static int net_vhost_check_net(void *opaque, QemuOpts 
> *opts, Error **errp)
>      }
>      if (strcmp(netdev, name) == 0 &&
>          !g_str_has_prefix(driver, "virtio-net-")) {
> -        error_setg(errp, "vhost-vdpa requires frontend driver virtio-net-*");
> +        error_setg(errp, "Vhost-vdpa requires frontend driver virtio-net-*");
>          return -1;
>      }
>      return 0;
> @@ -224,5 +224,9 @@ int net_init_vhost_vdpa(const Netdev *netdev, const char 
> *name,
>                            (char *)name, errp)) {
>          return -1;
>      }
> +    if (!opts->has_vhostdev) {
> +        error_setg(errp, "vhost-vdpa requires vhostdev to be set");
> +        return -1;
> +    }

Useless if you remove the '*' in qapi/net.json.

Thanks,
Laurent




reply via email to

[Prev in Thread] Current Thread [Next in Thread]