From: Pranjal Shrivastava <praan@google.com>
To: Jason Gunthorpe <jgg@nvidia.com>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>,
David Airlie <airlied@gmail.com>,
Alex Williamson <alex.williamson@redhat.com>,
Ankit Agrawal <ankita@nvidia.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Brett Creeley <brett.creeley@amd.com>,
dri-devel@lists.freedesktop.org,
Eric Auger <eric.auger@redhat.com>,
Eric Farman <farman@linux.ibm.com>,
Giovanni Cabiddu <giovanni.cabiddu@intel.com>,
Vasily Gorbik <gor@linux.ibm.com>,
Heiko Carstens <hca@linux.ibm.com>,
intel-gfx@lists.freedesktop.org,
Jani Nikula <jani.nikula@linux.intel.com>,
Joonas Lahtinen <joonas.lahtinen@linux.intel.com>,
Kevin Tian <kevin.tian@intel.com>,
kvm@vger.kernel.org, Kirti Wankhede <kwankhede@nvidia.com>,
linux-s390@vger.kernel.org, Longfang Liu <liulongfang@huawei.com>,
Matthew Rosato <mjrosato@linux.ibm.com>,
Nikhil Agarwal <nikhil.agarwal@amd.com>,
Nipun Gupta <nipun.gupta@amd.com>,
Peter Oberparleiter <oberpar@linux.ibm.com>,
Halil Pasic <pasic@linux.ibm.com>,
qat-linux@intel.com, Rodrigo Vivi <rodrigo.vivi@intel.com>,
Simona Vetter <simona@ffwll.ch>,
Shameer Kolothum <skolothumtho@nvidia.com>,
Mostafa Saleh <smostafa@google.com>,
Sven Schnelle <svens@linux.ibm.com>,
Tvrtko Ursulin <tursulin@ursulin.net>,
virtualization@lists.linux.dev,
Vineeth Vijayan <vneethv@linux.ibm.com>,
Yishai Hadas <yishaih@nvidia.com>,
Zhenyu Wang <zhenyuw.linux@gmail.com>,
Zhi Wang <zhi.wang.linux@gmail.com>,
patches@lists.linux.dev
Subject: Re: [PATCH 22/22] vfio: Remove the get_region_info op
Date: Mon, 3 Nov 2025 10:52:07 +0000 [thread overview]
Message-ID: <aQiJV4p3AKZSDH08@google.com> (raw)
In-Reply-To: <22-v1-679a6fa27d31+209-vfio_get_region_info_op_jgg@nvidia.com>
On Thu, Oct 23, 2025 at 08:09:36PM -0300, Jason Gunthorpe wrote:
> No driver uses it now, all are using get_region_info_caps().
>
> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
> ---
> drivers/vfio/vfio_main.c | 50 +++++++++++++++++-----------------------
> include/linux/vfio.h | 2 --
> 2 files changed, 21 insertions(+), 31 deletions(-)
>
> diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c
> index 82e7d79b1f9fe2..f911c1980c9420 100644
> --- a/drivers/vfio/vfio_main.c
> +++ b/drivers/vfio/vfio_main.c
> @@ -1263,48 +1263,40 @@ static long vfio_get_region_info(struct vfio_device *device,
> struct vfio_region_info __user *arg)
> {
> unsigned long minsz = offsetofend(struct vfio_region_info, offset);
> + struct vfio_info_cap caps = { .buf = NULL, .size = 0 };
> struct vfio_region_info info = {};
> int ret;
>
> + if (unlikely(!device->ops->get_region_info_caps))
> + return -EINVAL;
> +
> if (copy_from_user(&info, arg, minsz))
> return -EFAULT;
> if (info.argsz < minsz)
> return -EINVAL;
>
> - if (device->ops->get_region_info_caps) {
> - struct vfio_info_cap caps = { .buf = NULL, .size = 0 };
> + ret = device->ops->get_region_info_caps(device, &info, &caps);
> + if (ret)
> + return ret;
Shall we kfree(caps.buf); before returning?
> - ret = device->ops->get_region_info_caps(device, &info, &caps);
> - if (ret)
> - return ret;
> -
> - if (caps.size) {
> - info.flags |= VFIO_REGION_INFO_FLAG_CAPS;
> - if (info.argsz < sizeof(info) + caps.size) {
> - info.argsz = sizeof(info) + caps.size;
> - info.cap_offset = 0;
> - } else {
> - vfio_info_cap_shift(&caps, sizeof(info));
> - if (copy_to_user(arg + 1, caps.buf,
> - caps.size)) {
> - kfree(caps.buf);
> - return -EFAULT;
> - }
> - info.cap_offset = sizeof(info);
> + if (caps.size) {
> + info.flags |= VFIO_REGION_INFO_FLAG_CAPS;
> + if (info.argsz < sizeof(info) + caps.size) {
> + info.argsz = sizeof(info) + caps.size;
> + info.cap_offset = 0;
> + } else {
> + vfio_info_cap_shift(&caps, sizeof(info));
> + if (copy_to_user(arg + 1, caps.buf, caps.size)) {
> + kfree(caps.buf);
> + return -EFAULT;
> }
> - kfree(caps.buf);
> + info.cap_offset = sizeof(info);
> }
> -
> - if (copy_to_user(arg, &info, minsz))
> - return -EFAULT;
> - } else if (device->ops->get_region_info) {
> - ret = device->ops->get_region_info(device, arg);
> - if (ret)
> - return ret;
> - } else {
> - return -EINVAL;
> + kfree(caps.buf);
> }
>
> + if (copy_to_user(arg, &info, minsz))
> + return -EFAULT;
> return 0;
> }
>
> diff --git a/include/linux/vfio.h b/include/linux/vfio.h
> index 6311ddc837701d..8e1ddb48b9b54e 100644
> --- a/include/linux/vfio.h
> +++ b/include/linux/vfio.h
> @@ -133,8 +133,6 @@ struct vfio_device_ops {
> size_t count, loff_t *size);
> long (*ioctl)(struct vfio_device *vdev, unsigned int cmd,
> unsigned long arg);
> - int (*get_region_info)(struct vfio_device *vdev,
> - struct vfio_region_info __user *arg);
> int (*get_region_info_caps)(struct vfio_device *vdev,
> struct vfio_region_info *info,
> struct vfio_info_cap *caps);
Thanks,
Praan
next prev parent reply other threads:[~2025-11-03 10:52 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-23 23:09 [PATCH 00/22] vfio: Give VFIO_DEVICE_GET_REGION_INFO its own op Jason Gunthorpe
2025-10-23 23:09 ` [PATCH 01/22] vfio: Provide a get_region_info op Jason Gunthorpe
2025-11-03 5:57 ` Pranjal Shrivastava
2025-11-03 14:17 ` Eric Auger
2025-10-23 23:09 ` [PATCH 02/22] vfio/hisi: Convert to the " Jason Gunthorpe
2025-10-28 1:55 ` liulongfang
2025-10-28 7:07 ` Tian, Kevin
2025-11-03 6:06 ` Pranjal Shrivastava
2025-11-03 13:31 ` Jason Gunthorpe
2025-11-07 1:29 ` liulongfang
2025-10-23 23:09 ` [PATCH 03/22] vfio/virtio: " Jason Gunthorpe
2025-11-03 6:21 ` Pranjal Shrivastava
2025-10-23 23:09 ` [PATCH 04/22] vfio/nvgrace: " Jason Gunthorpe
2025-11-03 6:41 ` Pranjal Shrivastava
2025-11-03 13:35 ` Ankit Agrawal
2025-10-23 23:09 ` [PATCH 05/22] vfio/pci: Fill in the missing get_region_info ops Jason Gunthorpe
2025-11-03 6:43 ` Pranjal Shrivastava
2025-10-23 23:09 ` [PATCH 06/22] vfio/mtty: Provide a get_region_info op Jason Gunthorpe
2025-11-03 7:17 ` Pranjal Shrivastava
2025-10-23 23:09 ` [PATCH 07/22] vfio/mdpy: " Jason Gunthorpe
2025-11-03 7:18 ` Pranjal Shrivastava
2025-10-23 23:09 ` [PATCH 08/22] vfio/mbochs: " Jason Gunthorpe
2025-11-03 7:19 ` Pranjal Shrivastava
2025-10-23 23:09 ` [PATCH 09/22] vfio/platform: " Jason Gunthorpe
2025-11-03 7:14 ` Pranjal Shrivastava
2025-11-03 9:53 ` Mostafa Saleh
2025-11-03 13:59 ` Eric Auger
2025-11-03 14:27 ` Jason Gunthorpe
2025-10-23 23:09 ` [PATCH 10/22] vfio/fsl: " Jason Gunthorpe
2025-11-03 7:30 ` Pranjal Shrivastava
2025-10-23 23:09 ` [PATCH 11/22] vfio/cdx: " Jason Gunthorpe
2025-11-03 7:31 ` Pranjal Shrivastava
2025-10-23 23:09 ` [PATCH 12/22] vfio/ccw: " Jason Gunthorpe
2025-10-23 23:09 ` [PATCH 13/22] vfio/gvt: " Jason Gunthorpe
2025-10-24 10:12 ` Jani Nikula
2025-10-23 23:09 ` [PATCH 14/22] vfio: Require drivers to implement get_region_info Jason Gunthorpe
2025-11-03 7:39 ` Pranjal Shrivastava
2025-11-05 20:48 ` Alex Williamson
2025-11-05 20:56 ` Jason Gunthorpe
2025-11-05 21:19 ` Pranjal Shrivastava
2025-11-03 9:55 ` Mostafa Saleh
2025-10-23 23:09 ` [PATCH 15/22] vfio: Add get_region_info_caps op Jason Gunthorpe
2025-11-03 10:16 ` Pranjal Shrivastava
2025-11-03 11:03 ` Pranjal Shrivastava
2025-10-23 23:09 ` [PATCH 16/22] vfio/mbochs: Convert mbochs to use vfio_info_add_capability() Jason Gunthorpe
2025-10-23 23:09 ` [PATCH 17/22] vfio/gvt: Convert to get_region_info_caps Jason Gunthorpe
2025-10-23 23:09 ` [PATCH 18/22] vfio/ccw: " Jason Gunthorpe
2025-10-28 7:09 ` Tian, Kevin
2025-10-23 23:09 ` [PATCH 19/22] vfio/pci: Convert all PCI drivers " Jason Gunthorpe
2025-10-28 17:08 ` Brett Creeley
2025-11-03 10:25 ` Pranjal Shrivastava
2025-10-23 23:09 ` [PATCH 20/22] vfio/platform: Convert " Jason Gunthorpe
2025-11-03 9:57 ` Mostafa Saleh
2025-11-03 10:21 ` Pranjal Shrivastava
2025-11-03 14:20 ` Eric Auger
2025-11-07 1:05 ` Jason Gunthorpe
2025-10-23 23:09 ` [PATCH 21/22] vfio: Move the remaining drivers " Jason Gunthorpe
2025-11-03 10:29 ` Pranjal Shrivastava
2025-10-23 23:09 ` [PATCH 22/22] vfio: Remove the get_region_info op Jason Gunthorpe
2025-11-03 10:52 ` Pranjal Shrivastava [this message]
2025-11-07 0:43 ` Jason Gunthorpe
2025-10-28 7:10 ` [PATCH 00/22] vfio: Give VFIO_DEVICE_GET_REGION_INFO its own op Tian, Kevin
2025-11-03 9:53 ` Mostafa Saleh
2025-11-05 20:58 ` Alex Williamson
2025-11-06 20:37 ` Jason Gunthorpe
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=aQiJV4p3AKZSDH08@google.com \
--to=praan@google.com \
--cc=agordeev@linux.ibm.com \
--cc=airlied@gmail.com \
--cc=alex.williamson@redhat.com \
--cc=ankita@nvidia.com \
--cc=borntraeger@linux.ibm.com \
--cc=brett.creeley@amd.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=eric.auger@redhat.com \
--cc=farman@linux.ibm.com \
--cc=giovanni.cabiddu@intel.com \
--cc=gor@linux.ibm.com \
--cc=hca@linux.ibm.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=jgg@nvidia.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=kevin.tian@intel.com \
--cc=kvm@vger.kernel.org \
--cc=kwankhede@nvidia.com \
--cc=linux-s390@vger.kernel.org \
--cc=liulongfang@huawei.com \
--cc=mjrosato@linux.ibm.com \
--cc=nikhil.agarwal@amd.com \
--cc=nipun.gupta@amd.com \
--cc=oberpar@linux.ibm.com \
--cc=pasic@linux.ibm.com \
--cc=patches@lists.linux.dev \
--cc=qat-linux@intel.com \
--cc=rodrigo.vivi@intel.com \
--cc=simona@ffwll.ch \
--cc=skolothumtho@nvidia.com \
--cc=smostafa@google.com \
--cc=svens@linux.ibm.com \
--cc=tursulin@ursulin.net \
--cc=virtualization@lists.linux.dev \
--cc=vneethv@linux.ibm.com \
--cc=yishaih@nvidia.com \
--cc=zhenyuw.linux@gmail.com \
--cc=zhi.wang.linux@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).