From: Yi Liu <yi.l.liu@intel.com>
To: alex.williamson@redhat.com, jgg@nvidia.com, kevin.tian@intel.com
Cc: joro@8bytes.org, robin.murphy@arm.com, cohuck@redhat.com,
eric.auger@redhat.com, nicolinc@nvidia.com, kvm@vger.kernel.org,
mjrosato@linux.ibm.com, chao.p.peng@linux.intel.com,
yi.l.liu@intel.com, yi.y.sun@linux.intel.com, peterx@redhat.com,
jasowang@redhat.com, shameerali.kolothum.thodi@huawei.com,
lulu@redhat.com, suravee.suthikulpanit@amd.com,
intel-gvt-dev@lists.freedesktop.org,
intel-gfx@lists.freedesktop.org, linux-s390@vger.kernel.org,
xudong.hao@intel.com, yan.y.zhao@intel.com,
terrence.xu@intel.com, yanting.jiang@intel.com
Subject: [PATCH v2 09/10] vfio/pci: Accept device fd in VFIO_DEVICE_PCI_HOT_RESET ioctl
Date: Mon, 27 Mar 2023 02:34:57 -0700 [thread overview]
Message-ID: <20230327093458.44939-10-yi.l.liu@intel.com> (raw)
In-Reply-To: <20230327093458.44939-1-yi.l.liu@intel.com>
Now user can also provide an array of device fds as a 3rd method to verify
the reset ownership. It's not useful at this point when the device fds are
acquired via group fds. But it's necessary when moving to device cdev which
allows the user to directly acquire device fds by skipping group. In that
case this method can be used as a last resort when the preferred iommufd
verification doesn't work, e.g. in noiommu usages.
Clarify it in uAPI.
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Yi Liu <yi.l.liu@intel.com>
---
drivers/vfio/pci/vfio_pci_core.c | 9 +++++----
include/uapi/linux/vfio.h | 3 ++-
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c
index da6325008872..19f5b075d70a 100644
--- a/drivers/vfio/pci/vfio_pci_core.c
+++ b/drivers/vfio/pci/vfio_pci_core.c
@@ -1289,7 +1289,7 @@ vfio_pci_ioctl_pci_hot_reset_files(struct vfio_pci_core_device *vdev,
return -ENOMEM;
}
- if (copy_from_user(fds, arg->group_fds,
+ if (copy_from_user(fds, arg->fds,
hdr->count * sizeof(*fds))) {
kfree(fds);
kfree(files);
@@ -1297,8 +1297,8 @@ vfio_pci_ioctl_pci_hot_reset_files(struct vfio_pci_core_device *vdev,
}
/*
- * Get the group file for each fd to ensure the group held across
- * the reset
+ * Get the file for each fd to ensure the group/device file
+ * is held across the reset
*/
for (file_idx = 0; file_idx < hdr->count; file_idx++) {
struct file *file = fget(fds[file_idx]);
@@ -2469,7 +2469,8 @@ static int vfio_pci_dev_set_hot_reset(struct vfio_device_set *dev_set,
* cannot race being opened by another user simultaneously.
*
* Otherwise all opened devices in the dev_set must be
- * contained by the set of groups provided by the user.
+ * contained by the set of groups/devices provided by
+ * the user.
*
* If user provides a zero-length array, then all the
* opened devices must be bound to a same iommufd_ctx.
diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h
index 17aa5d09db41..25432ef213ee 100644
--- a/include/uapi/linux/vfio.h
+++ b/include/uapi/linux/vfio.h
@@ -681,6 +681,7 @@ struct vfio_pci_hot_reset_info {
*
* The ownership can be proved by:
* - An array of group fds
+ * - An array of device fds
* - A zero-length array
*
* In the last case all affected devices which are opened by this user
@@ -694,7 +695,7 @@ struct vfio_pci_hot_reset {
__u32 argsz;
__u32 flags;
__u32 count;
- __s32 group_fds[];
+ __s32 fds[];
};
#define VFIO_DEVICE_PCI_HOT_RESET _IO(VFIO_TYPE, VFIO_BASE + 13)
--
2.34.1
next prev parent reply other threads:[~2023-03-27 9:35 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-27 9:34 [PATCH v2 00/10] Introduce new methods for verifying ownership in vfio PCI hot reset Yi Liu
2023-03-27 9:34 ` [PATCH v2 01/10] vfio/pci: Update comment around group_fd get in vfio_pci_ioctl_pci_hot_reset() Yi Liu
2023-03-27 9:34 ` [PATCH v2 02/10] vfio/pci: Only check ownership of opened devices in hot reset Yi Liu
2023-03-27 9:34 ` [PATCH v2 03/10] vfio/pci: Move the existing hot reset logic to be a helper Yi Liu
2023-03-30 23:39 ` Jason Gunthorpe
2023-03-30 23:44 ` Jason Gunthorpe
2023-03-27 9:34 ` [PATCH v2 04/10] vfio-iommufd: Add helper to retrieve iommufd_ctx and devid for vfio_device Yi Liu
2023-03-30 23:44 ` Jason Gunthorpe
2023-03-27 9:34 ` [PATCH v2 05/10] vfio/pci: Allow passing zero-length fd array in VFIO_DEVICE_PCI_HOT_RESET Yi Liu
2023-03-30 23:47 ` Jason Gunthorpe
2023-03-27 9:34 ` [PATCH v2 06/10] vfio: Refine vfio file kAPIs for vfio PCI hot reset Yi Liu
2023-03-30 23:48 ` Jason Gunthorpe
2023-03-27 9:34 ` [PATCH v2 07/10] vfio: Accpet device file from vfio PCI hot reset path Yi Liu
2023-03-30 23:49 ` Jason Gunthorpe
2023-03-27 9:34 ` [PATCH v2 08/10] vfio/pci: Renaming for accepting device fd in " Yi Liu
2023-03-27 9:34 ` Yi Liu [this message]
2023-03-30 23:50 ` [PATCH v2 09/10] vfio/pci: Accept device fd in VFIO_DEVICE_PCI_HOT_RESET ioctl Jason Gunthorpe
2023-03-27 9:34 ` [PATCH v2 10/10] vfio/pci: Add VFIO_DEVICE_GET_PCI_HOT_RESET_GROUP_INFO Yi Liu
2023-03-27 19:26 ` Alex Williamson
2023-03-27 20:40 ` Alex Williamson
2023-03-28 3:45 ` Liu, Yi L
2023-03-28 3:32 ` Liu, Yi L
2023-03-28 6:19 ` Tian, Kevin
2023-03-28 14:25 ` Alex Williamson
2023-03-28 14:38 ` Liu, Yi L
2023-03-28 14:46 ` Alex Williamson
2023-03-28 15:00 ` Liu, Yi L
2023-03-28 15:18 ` Alex Williamson
2023-03-28 15:45 ` Liu, Yi L
2023-03-28 16:00 ` Alex Williamson
2023-03-29 3:13 ` Liu, Yi L
2023-03-29 9:41 ` Tian, Kevin
2023-03-29 15:49 ` Alex Williamson
2023-03-29 15:57 ` Jason Gunthorpe
2023-03-30 1:17 ` Tian, Kevin
2023-03-30 22:38 ` Jason Gunthorpe
2023-03-30 12:48 ` Liu, Yi L
2023-03-30 12:56 ` Liu, Yi L
2023-03-30 22:44 ` Jason Gunthorpe
2023-03-30 23:05 ` Alex Williamson
2023-03-30 23:18 ` Jason Gunthorpe
2023-03-29 15:50 ` Jason Gunthorpe
2023-03-30 1:10 ` Tian, Kevin
2023-03-30 1:33 ` Tian, Kevin
2023-03-28 16:29 ` Jason Gunthorpe
2023-03-28 19:09 ` Alex Williamson
2023-03-28 19:22 ` Jason Gunthorpe
2023-03-28 12:40 ` Jason Gunthorpe
2023-03-28 14:45 ` Liu, Yi L
2023-03-31 3:14 ` [PATCH v2 00/10] Introduce new methods for verifying ownership in vfio PCI hot reset Jiang, Yanting
2023-03-31 13:24 ` Alex Williamson
2023-04-03 2:04 ` Jiang, Yanting
2023-03-31 5:01 ` Jiang, Yanting
2023-03-31 17:27 ` Xu, Terrence
2023-03-31 17:49 ` Alex Williamson
2023-04-01 9:15 ` Xu, Terrence
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=20230327093458.44939-10-yi.l.liu@intel.com \
--to=yi.l.liu@intel.com \
--cc=alex.williamson@redhat.com \
--cc=chao.p.peng@linux.intel.com \
--cc=cohuck@redhat.com \
--cc=eric.auger@redhat.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-gvt-dev@lists.freedesktop.org \
--cc=jasowang@redhat.com \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=lulu@redhat.com \
--cc=mjrosato@linux.ibm.com \
--cc=nicolinc@nvidia.com \
--cc=peterx@redhat.com \
--cc=robin.murphy@arm.com \
--cc=shameerali.kolothum.thodi@huawei.com \
--cc=suravee.suthikulpanit@amd.com \
--cc=terrence.xu@intel.com \
--cc=xudong.hao@intel.com \
--cc=yan.y.zhao@intel.com \
--cc=yanting.jiang@intel.com \
--cc=yi.y.sun@linux.intel.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