summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorXu Yilun <yilun.xu@linux.intel.com>2025-07-16 10:03:46 +0300
committerJason Gunthorpe <jgg@nvidia.com>2025-07-18 23:33:08 +0300
commit651f733675c4a26e59dd34522917eace20c557c0 (patch)
tree1d5f5fbf461e6df98a78e54ceb390465918c979f /include/linux
parent850f14f5b91986e586b66565c9c75bdd4c834571 (diff)
downloadlinux-651f733675c4a26e59dd34522917eace20c557c0.tar.xz
iommufd/vdevice: Remove struct device reference from struct vdevice
Remove struct device *dev from struct vdevice. The dev pointer is the Plan B for vdevice to reference the physical device. As now vdev->idev is added without refcounting concern, just use vdev->idev->dev when needed. To avoid exposing struct iommufd_device in the public header, export a iommufd_vdevice_to_device() helper. Link: https://patch.msgid.link/r/20250716070349.1807226-6-yilun.xu@linux.intel.com Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> Reviewed-by: Nicolin Chen <nicolinc@nvidia.com> Co-developed-by: Nicolin Chen <nicolinc@nvidia.com> Signed-off-by: Nicolin Chen <nicolinc@nvidia.com> Tested-by: Nicolin Chen <nicolinc@nvidia.com> Signed-off-by: Xu Yilun <yilun.xu@linux.intel.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/iommufd.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/include/linux/iommufd.h b/include/linux/iommufd.h
index b88911026bc4..810e4d8ac912 100644
--- a/include/linux/iommufd.h
+++ b/include/linux/iommufd.h
@@ -109,7 +109,6 @@ struct iommufd_vdevice {
struct iommufd_object obj;
struct iommufd_viommu *viommu;
struct iommufd_device *idev;
- struct device *dev;
/*
* Virtual device ID per vIOMMU, e.g. vSID of ARM SMMUv3, vDeviceID of
@@ -261,6 +260,7 @@ int _iommufd_alloc_mmap(struct iommufd_ctx *ictx, struct iommufd_object *owner,
unsigned long *offset);
void _iommufd_destroy_mmap(struct iommufd_ctx *ictx,
struct iommufd_object *owner, unsigned long offset);
+struct device *iommufd_vdevice_to_device(struct iommufd_vdevice *vdev);
struct device *iommufd_viommu_find_dev(struct iommufd_viommu *viommu,
unsigned long vdev_id);
int iommufd_viommu_get_vdev_id(struct iommufd_viommu *viommu,
@@ -296,6 +296,12 @@ static inline void _iommufd_destroy_mmap(struct iommufd_ctx *ictx,
}
static inline struct device *
+iommufd_vdevice_to_device(struct iommufd_vdevice *vdev)
+{
+ return NULL;
+}
+
+static inline struct device *
iommufd_viommu_find_dev(struct iommufd_viommu *viommu, unsigned long vdev_id)
{
return NULL;