From: Aneesh Kumar K.V <aneesh.kumar@kernel.org>
To: Jason Gunthorpe <jgg@ziepe.ca>
Cc: iommu@lists.linux.dev, linux-kernel@vger.kernel.org,
kvm@vger.kernel.org, Alexey Kardashevskiy <aik@amd.com>,
Bjorn Helgaas <helgaas@kernel.org>,
Dan Williams <dan.j.williams@intel.com>,
Joerg Roedel <joro@8bytes.org>,
Jonathan Cameron <jic23@kernel.org>,
Kevin Tian <kevin.tian@intel.com>,
Nicolin Chen <nicolinc@nvidia.com>,
Samuel Ortiz <sameo@rivosinc.com>,
Steven Price <steven.price@arm.com>,
Suzuki K Poulose <Suzuki.Poulose@arm.com>,
Will Deacon <will@kernel.org>,
Xu Yilun <yilun.xu@linux.intel.com>,
Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>,
Sean Christopherson <seanjc@google.com>,
Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [PATCH v4 1/4] iommufd/device: Associate a kvm pointer to iommufd_device
Date: Tue, 28 Apr 2026 17:31:04 +0530 [thread overview]
Message-ID: <yq5afr4f1egv.fsf@kernel.org> (raw)
In-Reply-To: <20260427135906.GB740385@ziepe.ca>
Jason Gunthorpe <jgg@ziepe.ca> writes:
> On Mon, Apr 27, 2026 at 11:40:02AM +0530, Aneesh Kumar K.V (Arm) wrote:
>> From: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
>>
>> Add a struct kvm * to iommufd_device_bind() fn and associate it
>> with idev if bind is successful.
>>
>> Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
>> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
>> [nicolinc: fix build error in iommufd_test_mock_domain()]
>> Signed-off-by: Nicolin Chen <nicolinc@nvidia.com>
>> Signed-off-by: Aneesh Kumar K.V (Arm) <aneesh.kumar@kernel.org>
>> ---
>> drivers/iommu/iommufd/device.c | 5 ++++-
>> drivers/iommu/iommufd/iommufd_private.h | 2 ++
>> drivers/iommu/iommufd/selftest.c | 2 +-
>> drivers/vfio/iommufd.c | 2 +-
>> include/linux/iommufd.h | 4 +++-
>> 5 files changed, 11 insertions(+), 4 deletions(-)
>
>> diff --git a/drivers/iommu/iommufd/device.c b/drivers/iommu/iommufd/device.c
>> index 344d620cdecc..453fbceb9219 100644
>> --- a/drivers/iommu/iommufd/device.c
>> +++ b/drivers/iommu/iommufd/device.c
>> @@ -203,6 +203,7 @@ void iommufd_device_destroy(struct iommufd_object *obj)
>> * iommufd_device_bind - Bind a physical device to an iommu fd
>> * @ictx: iommufd file descriptor
>> * @dev: Pointer to a physical device struct
>> + * @kvm: Pointer to struct kvm if device belongs to a KVM VM
>> * @id: Output ID number to return to userspace for this device
>> *
>> * A successful bind establishes an ownership over the device and returns
>> @@ -216,7 +217,8 @@ void iommufd_device_destroy(struct iommufd_object *obj)
>> * The caller must undo this with iommufd_device_unbind()
>> */
>> struct iommufd_device *iommufd_device_bind(struct iommufd_ctx *ictx,
>> - struct device *dev, u32 *id)
>> + struct device *dev, struct kvm *kvm,
>> + u32 *id)
>
> I thought we were trying to get away from struct kvm?
>
> https://lore.kernel.org/all/adf29Rn7q9Db0hxc@google.com/
>
> Ie this should be a 'struct file *kvm_fd'
>
> ?
>
> Though I am wondering how practical it is to do this at this moment :\
>
Should we also switch
modified drivers/vfio/vfio.h
@@ -22,8 +22,8 @@ struct vfio_device_file {
u8 access_granted;
u32 devid; /* only valid when iommufd is valid */
- spinlock_t kvm_ref_lock; /* protect kvm field */
- struct kvm *kvm;
+ spinlock_t kvm_ref_lock; /* protect kvm_file */
+ struct file *kvm_file;
struct iommufd_ctx *iommufd; /* protected by struct vfio_device_set::lock */
};
@@ -88,7 +88,7 @@ struct vfio_group {
#endif
enum vfio_group_type type;
struct mutex group_lock;
- struct kvm *kvm;
+ struct file *kvm_file;
struct file *opened_file;
struct blocking_notifier_head notifier;
struct iommufd_ctx *iommufd;
ie,
KVM_CREATE_DEVICE with KVM_DEV_TYPE_VFIO still use kvm->users_count,
KVM_DEV_VFIO_FILE_ADD -> will switch to get_file(kvm->_file);
and VFIO_DEVICE_BIND_IOMMUFD -> will switch to get_file(df->kvm_file)
> Maybe ask Paolo how his series is going?
>
>> {
>> struct iommufd_device *idev;
>> struct iommufd_group *igroup;
>> @@ -266,6 +268,7 @@ struct iommufd_device *iommufd_device_bind(struct iommufd_ctx *ictx,
>> if (!iommufd_selftest_is_mock_dev(dev))
>> iommufd_ctx_get(ictx);
>> idev->dev = dev;
>> + idev->kvm = kvm;
>
> If we do that then I'd take a file refcount here ^^^
>
> And then put it back when the idev is freed
>
> That makes the lifecycle robust.
>
> Jason
-aneesh
next prev parent reply other threads:[~2026-04-28 12:01 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-27 6:10 [PATCH v4 0/4] Add iommufd ioctls to support TSM operations Aneesh Kumar K.V (Arm)
2026-04-27 6:10 ` [PATCH v4 1/4] iommufd/device: Associate a kvm pointer to iommufd_device Aneesh Kumar K.V (Arm)
2026-04-27 9:07 ` Baolu Lu
2026-04-27 14:01 ` Jason Gunthorpe
2026-04-27 13:59 ` Jason Gunthorpe
2026-04-28 12:01 ` Aneesh Kumar K.V [this message]
2026-04-28 12:50 ` Jason Gunthorpe
2026-04-29 13:52 ` Aneesh Kumar K.V
2026-04-27 6:10 ` [PATCH v4 2/4] iommufd/viommu: Associate a kvm pointer to iommufd_viommu Aneesh Kumar K.V (Arm)
2026-04-27 14:03 ` Jason Gunthorpe
2026-04-27 6:10 ` [PATCH v4 3/4] iommufd/tsm: add vdevice TSM bind/unbind ioctl Aneesh Kumar K.V (Arm)
2026-04-27 6:10 ` [PATCH v4 4/4] iommufd/vdevice: add TSM guest request ioctl Aneesh Kumar K.V (Arm)
2026-04-27 14:05 ` Jason Gunthorpe
2026-04-28 12:13 ` Aneesh Kumar K.V
2026-04-28 12:48 ` Jason Gunthorpe
2026-05-08 3:12 ` Tian, Kevin
2026-05-08 4:12 ` Aneesh Kumar K.V
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=yq5afr4f1egv.fsf@kernel.org \
--to=aneesh.kumar@kernel.org \
--cc=Suzuki.Poulose@arm.com \
--cc=aik@amd.com \
--cc=dan.j.williams@intel.com \
--cc=helgaas@kernel.org \
--cc=iommu@lists.linux.dev \
--cc=jgg@ziepe.ca \
--cc=jic23@kernel.org \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nicolinc@nvidia.com \
--cc=pbonzini@redhat.com \
--cc=sameo@rivosinc.com \
--cc=seanjc@google.com \
--cc=shameerali.kolothum.thodi@huawei.com \
--cc=steven.price@arm.com \
--cc=will@kernel.org \
--cc=yilun.xu@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 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.