diff options
author | Yi Liu <yi.l.liu@intel.com> | 2023-07-18 06:55:37 -0700 |
---|---|---|
committer | Alex Williamson <alex.williamson@redhat.com> | 2023-07-25 10:19:08 -0600 |
commit | 31014aef9e4cc0326b5df0c3149e757a2b490176 (patch) | |
tree | f270641489c538edc9a44097e813b0a26c3702fe /drivers/vfio/vfio.h | |
parent | 6f240ee677eb642398905df48af7efef70a477aa (diff) | |
download | lwn-31014aef9e4cc0326b5df0c3149e757a2b490176.tar.gz lwn-31014aef9e4cc0326b5df0c3149e757a2b490176.zip |
vfio: Record devid in vfio_device_file
.bind_iommufd() will generate an ID to represent this bond, which is
needed by userspace for further usage. Store devid in vfio_device_file
to avoid passing the pointer in multiple places.
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Tested-by: Terrence Xu <terrence.xu@intel.com>
Tested-by: Nicolin Chen <nicolinc@nvidia.com>
Tested-by: Matthew Rosato <mjrosato@linux.ibm.com>
Tested-by: Yanting Jiang <yanting.jiang@intel.com>
Tested-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Tested-by: Zhenzhong Duan <zhenzhong.duan@intel.com>
Signed-off-by: Yi Liu <yi.l.liu@intel.com>
Link: https://lore.kernel.org/r/20230718135551.6592-13-yi.l.liu@intel.com
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Diffstat (limited to 'drivers/vfio/vfio.h')
-rw-r--r-- | drivers/vfio/vfio.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/vfio/vfio.h b/drivers/vfio/vfio.h index 04755379940c..58801adc1a7e 100644 --- a/drivers/vfio/vfio.h +++ b/drivers/vfio/vfio.h @@ -21,6 +21,7 @@ struct vfio_device_file { struct vfio_group *group; u8 access_granted; + u32 devid; /* only valid when iommufd is valid */ spinlock_t kvm_ref_lock; /* protect kvm field */ struct kvm *kvm; struct iommufd_ctx *iommufd; /* protected by struct vfio_device_set::lock */ @@ -236,8 +237,8 @@ static inline void vfio_container_cleanup(void) #if IS_ENABLED(CONFIG_IOMMUFD) bool vfio_iommufd_device_has_compat_ioas(struct vfio_device *vdev, struct iommufd_ctx *ictx); -int vfio_iommufd_bind(struct vfio_device *device, struct iommufd_ctx *ictx); -void vfio_iommufd_unbind(struct vfio_device *device); +int vfio_df_iommufd_bind(struct vfio_device_file *df); +void vfio_df_iommufd_unbind(struct vfio_device_file *df); int vfio_iommufd_compat_attach_ioas(struct vfio_device *device, struct iommufd_ctx *ictx); #else @@ -248,13 +249,12 @@ vfio_iommufd_device_has_compat_ioas(struct vfio_device *vdev, return false; } -static inline int vfio_iommufd_bind(struct vfio_device *device, - struct iommufd_ctx *ictx) +static inline int vfio_df_iommufd_bind(struct vfio_device_file *fd) { return -EOPNOTSUPP; } -static inline void vfio_iommufd_unbind(struct vfio_device *device) +static inline void vfio_df_iommufd_unbind(struct vfio_device_file *df) { } |