From: "Michael S. Tsirkin" <mst@redhat.com>
To: Xie Yongji <xieyongji@bytedance.com>
Cc: xiaodong.liu@intel.com, linux-kernel@vger.kernel.org,
virtualization@lists.linux-foundation.org,
maxime.coquelin@redhat.com, stefanha@redhat.com
Subject: Re: [PATCH 6/6] vduse: Update api version to 1
Date: Wed, 29 Jun 2022 04:33:35 -0400 [thread overview]
Message-ID: <20220629042856-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20220629082541.118-7-xieyongji@bytedance.com>
On Wed, Jun 29, 2022 at 04:25:41PM +0800, Xie Yongji wrote:
> Let's update api version to 1 since we introduced
> some new ioctls to support registering userspace
> memory for IOTLB.
>
> Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
Adding new ioctls does not justify things like this.
Besides, adding UAPI then changing it is not nice
since it makes git bisect behave incorrectly.
> ---
> drivers/vdpa/vdpa_user/vduse_dev.c | 12 ++++++++++++
> include/uapi/linux/vduse.h | 8 +++++++-
> 2 files changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c
> index 7b2ea7612da9..2795785ca6a2 100644
> --- a/drivers/vdpa/vdpa_user/vduse_dev.c
> +++ b/drivers/vdpa/vdpa_user/vduse_dev.c
> @@ -1206,6 +1206,10 @@ static long vduse_dev_ioctl(struct file *file, unsigned int cmd,
> case VDUSE_IOTLB_GET_INFO: {
> struct vduse_iotlb_info iotlb;
>
> + ret = -EPERM;
Almost for sure a wrong error code.
> + if (dev->api_version < 1)
> + break;
> +
> iotlb.bounce_iova = 0;
> iotlb.bounce_size = dev->domain->bounce_size;
>
Wait a second. so you are intentionally breaking any userspace
that called VDUSE_SET_API_VERSION with version 0?
Please don't.
> @@ -1219,6 +1223,10 @@ static long vduse_dev_ioctl(struct file *file, unsigned int cmd,
> case VDUSE_IOTLB_REG_UMEM: {
> struct vduse_iotlb_umem umem;
>
> + ret = -EPERM;
> + if (dev->api_version < 1)
> + break;
> +
> ret = -EFAULT;
> if (copy_from_user(&umem, argp, sizeof(umem)))
> break;
> @@ -1230,6 +1238,10 @@ static long vduse_dev_ioctl(struct file *file, unsigned int cmd,
> case VDUSE_IOTLB_DEREG_UMEM: {
> struct vduse_iotlb_umem umem;
>
> + ret = -EPERM;
> + if (dev->api_version < 1)
> + break;
> +
> ret = -EFAULT;
> if (copy_from_user(&umem, argp, sizeof(umem)))
> break;
> diff --git a/include/uapi/linux/vduse.h b/include/uapi/linux/vduse.h
> index 1b17391e228f..902ea19cd9e0 100644
> --- a/include/uapi/linux/vduse.h
> +++ b/include/uapi/linux/vduse.h
> @@ -8,7 +8,13 @@
>
> /* The ioctls for control device (/dev/vduse/control) */
>
> -#define VDUSE_API_VERSION 0
> +/*
> + * v0 -> v1:
> + * - Introduce VDUSE_IOTLB_GET_INFO ioctl
> + * - Introduce VDUSE_VDUSE_IOTLB_REG_UMEM ioctl
> + * - Introduce VDUSE_IOTLB_DEREG_UMEM ioctl
> + */
> +#define VDUSE_API_VERSION 1
>
> /*
> * Get the version of VDUSE API that kernel supported (VDUSE_API_VERSION).
> --
> 2.20.1
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
WARNING: multiple messages have this Message-ID (diff)
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Xie Yongji <xieyongji@bytedance.com>
Cc: jasowang@redhat.com, xiaodong.liu@intel.com,
maxime.coquelin@redhat.com, stefanha@redhat.com,
virtualization@lists.linux-foundation.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 6/6] vduse: Update api version to 1
Date: Wed, 29 Jun 2022 04:33:35 -0400 [thread overview]
Message-ID: <20220629042856-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <20220629082541.118-7-xieyongji@bytedance.com>
On Wed, Jun 29, 2022 at 04:25:41PM +0800, Xie Yongji wrote:
> Let's update api version to 1 since we introduced
> some new ioctls to support registering userspace
> memory for IOTLB.
>
> Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
Adding new ioctls does not justify things like this.
Besides, adding UAPI then changing it is not nice
since it makes git bisect behave incorrectly.
> ---
> drivers/vdpa/vdpa_user/vduse_dev.c | 12 ++++++++++++
> include/uapi/linux/vduse.h | 8 +++++++-
> 2 files changed, 19 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/vdpa/vdpa_user/vduse_dev.c b/drivers/vdpa/vdpa_user/vduse_dev.c
> index 7b2ea7612da9..2795785ca6a2 100644
> --- a/drivers/vdpa/vdpa_user/vduse_dev.c
> +++ b/drivers/vdpa/vdpa_user/vduse_dev.c
> @@ -1206,6 +1206,10 @@ static long vduse_dev_ioctl(struct file *file, unsigned int cmd,
> case VDUSE_IOTLB_GET_INFO: {
> struct vduse_iotlb_info iotlb;
>
> + ret = -EPERM;
Almost for sure a wrong error code.
> + if (dev->api_version < 1)
> + break;
> +
> iotlb.bounce_iova = 0;
> iotlb.bounce_size = dev->domain->bounce_size;
>
Wait a second. so you are intentionally breaking any userspace
that called VDUSE_SET_API_VERSION with version 0?
Please don't.
> @@ -1219,6 +1223,10 @@ static long vduse_dev_ioctl(struct file *file, unsigned int cmd,
> case VDUSE_IOTLB_REG_UMEM: {
> struct vduse_iotlb_umem umem;
>
> + ret = -EPERM;
> + if (dev->api_version < 1)
> + break;
> +
> ret = -EFAULT;
> if (copy_from_user(&umem, argp, sizeof(umem)))
> break;
> @@ -1230,6 +1238,10 @@ static long vduse_dev_ioctl(struct file *file, unsigned int cmd,
> case VDUSE_IOTLB_DEREG_UMEM: {
> struct vduse_iotlb_umem umem;
>
> + ret = -EPERM;
> + if (dev->api_version < 1)
> + break;
> +
> ret = -EFAULT;
> if (copy_from_user(&umem, argp, sizeof(umem)))
> break;
> diff --git a/include/uapi/linux/vduse.h b/include/uapi/linux/vduse.h
> index 1b17391e228f..902ea19cd9e0 100644
> --- a/include/uapi/linux/vduse.h
> +++ b/include/uapi/linux/vduse.h
> @@ -8,7 +8,13 @@
>
> /* The ioctls for control device (/dev/vduse/control) */
>
> -#define VDUSE_API_VERSION 0
> +/*
> + * v0 -> v1:
> + * - Introduce VDUSE_IOTLB_GET_INFO ioctl
> + * - Introduce VDUSE_VDUSE_IOTLB_REG_UMEM ioctl
> + * - Introduce VDUSE_IOTLB_DEREG_UMEM ioctl
> + */
> +#define VDUSE_API_VERSION 1
>
> /*
> * Get the version of VDUSE API that kernel supported (VDUSE_API_VERSION).
> --
> 2.20.1
next prev parent reply other threads:[~2022-06-29 8:33 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-29 8:25 [PATCH 0/6] VDUSE: Support registering userspace memory as bounce buffer Xie Yongji
2022-06-29 8:25 ` [PATCH 1/6] vduse: Remove unnecessary spin lock protection Xie Yongji
2022-06-29 8:25 ` [PATCH 2/6] vduse: Use memcpy_{to,from}_page() in do_bounce() Xie Yongji
2022-06-29 8:25 ` [PATCH 3/6] vduse: Support using userspace pages as bounce buffer Xie Yongji
2022-06-29 8:25 ` [PATCH 4/6] vduse: Support querying IOLTB information Xie Yongji
2022-06-29 8:25 ` [PATCH 5/6] vduse: Support registering userspace memory for IOTLB Xie Yongji
2022-06-29 8:42 ` Michael S. Tsirkin
2022-06-29 8:42 ` Michael S. Tsirkin
2022-06-29 9:26 ` Yongji Xie
2022-06-29 9:54 ` Michael S. Tsirkin
2022-06-29 9:54 ` Michael S. Tsirkin
2022-06-29 10:19 ` Yongji Xie
2022-06-29 11:28 ` Michael S. Tsirkin
2022-06-29 11:28 ` Michael S. Tsirkin
2022-06-29 8:25 ` [PATCH 6/6] vduse: Update api version to 1 Xie Yongji
2022-06-29 8:33 ` Michael S. Tsirkin [this message]
2022-06-29 8:33 ` Michael S. Tsirkin
2022-06-29 9:02 ` Yongji Xie
2022-06-29 9:22 ` Michael S. Tsirkin
2022-06-29 9:22 ` Michael S. Tsirkin
2022-06-29 9:28 ` Yongji Xie
2022-07-04 9:26 ` [PATCH 0/6] VDUSE: Support registering userspace memory as bounce buffer Liu Xiaodong
2022-07-04 9:26 ` Liu Xiaodong
2022-07-04 10:02 ` Yongji Xie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220629042856-mutt-send-email-mst@kernel.org \
--to=mst@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maxime.coquelin@redhat.com \
--cc=stefanha@redhat.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=xiaodong.liu@intel.com \
--cc=xieyongji@bytedance.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.