[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <310d7793-e4ff-fba3-f358-418cb64c7988@redhat.com>
Date: Wed, 20 Jan 2021 11:46:38 +0800
From: Jason Wang <jasowang@...hat.com>
To: Xie Yongji <xieyongji@...edance.com>, mst@...hat.com,
stefanha@...hat.com, sgarzare@...hat.com, parav@...dia.com,
bob.liu@...cle.com, hch@...radead.org, rdunlap@...radead.org,
willy@...radead.org, viro@...iv.linux.org.uk, axboe@...nel.dk,
bcrl@...ck.org, corbet@....net
Cc: virtualization@...ts.linux-foundation.org, netdev@...r.kernel.org,
kvm@...r.kernel.org, linux-aio@...ck.org,
linux-fsdevel@...r.kernel.org
Subject: Re: [RFC v3 03/11] vdpa: Remove the restriction that only supports
virtio-net devices
On 2021/1/19 下午12:59, Xie Yongji wrote:
> With VDUSE, we should be able to support all kinds of virtio devices.
>
> Signed-off-by: Xie Yongji <xieyongji@...edance.com>
> ---
> drivers/vhost/vdpa.c | 29 +++--------------------------
> 1 file changed, 3 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c
> index 29ed4173f04e..448be7875b6d 100644
> --- a/drivers/vhost/vdpa.c
> +++ b/drivers/vhost/vdpa.c
> @@ -22,6 +22,7 @@
> #include <linux/nospec.h>
> #include <linux/vhost.h>
> #include <linux/virtio_net.h>
> +#include <linux/virtio_blk.h>
>
> #include "vhost.h"
>
> @@ -185,26 +186,6 @@ static long vhost_vdpa_set_status(struct vhost_vdpa *v, u8 __user *statusp)
> return 0;
> }
>
> -static int vhost_vdpa_config_validate(struct vhost_vdpa *v,
> - struct vhost_vdpa_config *c)
> -{
> - long size = 0;
> -
> - switch (v->virtio_id) {
> - case VIRTIO_ID_NET:
> - size = sizeof(struct virtio_net_config);
> - break;
> - }
> -
> - if (c->len == 0)
> - return -EINVAL;
> -
> - if (c->len > size - c->off)
> - return -E2BIG;
> -
> - return 0;
> -}
I think we should use a separate patch for this.
Thanks
> -
> static long vhost_vdpa_get_config(struct vhost_vdpa *v,
> struct vhost_vdpa_config __user *c)
> {
> @@ -215,7 +196,7 @@ static long vhost_vdpa_get_config(struct vhost_vdpa *v,
>
> if (copy_from_user(&config, c, size))
> return -EFAULT;
> - if (vhost_vdpa_config_validate(v, &config))
> + if (config.len == 0)
> return -EINVAL;
> buf = kvzalloc(config.len, GFP_KERNEL);
> if (!buf)
> @@ -243,7 +224,7 @@ static long vhost_vdpa_set_config(struct vhost_vdpa *v,
>
> if (copy_from_user(&config, c, size))
> return -EFAULT;
> - if (vhost_vdpa_config_validate(v, &config))
> + if (config.len == 0)
> return -EINVAL;
> buf = kvzalloc(config.len, GFP_KERNEL);
> if (!buf)
> @@ -1025,10 +1006,6 @@ static int vhost_vdpa_probe(struct vdpa_device *vdpa)
> int minor;
> int r;
>
> - /* Currently, we only accept the network devices. */
> - if (ops->get_device_id(vdpa) != VIRTIO_ID_NET)
> - return -ENOTSUPP;
> -
> v = kzalloc(sizeof(*v), GFP_KERNEL | __GFP_RETRY_MAYFAIL);
> if (!v)
> return -ENOMEM;
Powered by blists - more mailing lists