From: Baolu Lu <baolu.lu@linux.intel.com>
To: Jacob Pan <jacob.pan@linux.microsoft.com>
Cc: linux-kernel@vger.kernel.org,
"iommu@lists.linux.dev" <iommu@lists.linux.dev>,
Jason Gunthorpe <jgg@nvidia.com>,
Alex Williamson <alex@shazbot.org>,
Joerg Roedel <joro@8bytes.org>,
Mostafa Saleh <smostafa@google.com>,
David Matlack <dmatlack@google.com>,
Robin Murphy <robin.murphy@arm.com>,
Nicolin Chen <nicolinc@nvidia.com>,
"Tian, Kevin" <kevin.tian@intel.com>, Yi Liu <yi.l.liu@intel.com>,
Saurabh Sengar <ssengar@linux.microsoft.com>,
skhawaja@google.com, pasha.tatashin@soleen.com,
Will Deacon <will@kernel.org>
Subject: Re: [PATCH v5 4/9] iommufd: Allow binding to a noiommu device
Date: Thu, 14 May 2026 14:51:01 +0800 [thread overview]
Message-ID: <c15c4d4d-89a8-4ad9-86e2-e1adb3ff8b54@linux.intel.com> (raw)
In-Reply-To: <20260513150800.000027e5@linux.microsoft.com>
On 5/14/26 06:08, Jacob Pan wrote:
>>> +}
>>> +
>>> static void iommufd_group_release(struct kref *kref)
>>> {
>>> struct iommufd_group *igroup =
>>> @@ -30,9 +40,11 @@ static void iommufd_group_release(struct kref
>>> *kref)
>>> WARN_ON(!xa_empty(&igroup->pasid_attach));
>>>
>>> - xa_cmpxchg(&igroup->ictx->groups,
>>> iommu_group_id(igroup->group), igroup,
>>> - NULL, GFP_KERNEL);
>>> - iommu_group_put(igroup->group);
>>> + if (igroup->group) {
>>> + xa_cmpxchg(&igroup->ictx->groups,
>>> iommu_group_id(igroup->group),
>>> + igroup, NULL, GFP_KERNEL);
>>> + iommu_group_put(igroup->group);
>>> + }
>>> mutex_destroy(&igroup->lock);
>>> kfree(igroup);
>>> }
>>> @@ -204,32 +216,19 @@ void iommufd_device_destroy(struct
>>> iommufd_object *obj) struct iommufd_device *idev =
>>> container_of(obj, struct iommufd_device, obj);
>>>
>>> - iommu_device_release_dma_owner(idev->dev);
>>> + if (!idev->igroup)
>>> + return;
>> I don't quite follow this logic. Is this check being added
>> specifically for the new noiommu mode? Since the noiommu mode
>> introduces the convention that "igroup->group == NULL" implies
>> noiommu, there should be no cases where idev->igroup itself is NULL.
>>
> idev->igroup can be null on error path only, not limited to noiommu. It
> is the partially initialized idev case.
> /*
> * iommufd_device_destroy() handles partially initialized idev,
> * so iommufd_object_abort_and_destroy() is safe to call here.
> */
>
> How about add this comment?
> /* igroup is NULL when destroy called during bind error cleanup */
If it's not limited to noiommu, why not making it in a separated patch?
Thanks,
baolu
next prev parent reply other threads:[~2026-05-14 6:51 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-11 18:41 [PATCH v5 0/9] iommufd: Enable noiommu mode for cdev Jacob Pan
2026-05-11 18:41 ` [PATCH v5 1/9] vfio: Rename VFIO_NOIOMMU to VFIO_GROUP_NOIOMMU Jacob Pan
2026-05-11 18:41 ` [PATCH v5 2/9] iommufd: Support a HWPT without an iommu driver for noiommu Jacob Pan
2026-05-13 6:58 ` Baolu Lu
2026-05-13 21:30 ` Jacob Pan
2026-05-13 19:18 ` Samiullah Khawaja
2026-05-11 18:41 ` [PATCH v5 3/9] iommufd: Move igroup allocation to a function Jacob Pan
2026-05-13 7:18 ` Baolu Lu
2026-05-11 18:41 ` [PATCH v5 4/9] iommufd: Allow binding to a noiommu device Jacob Pan
2026-05-13 7:37 ` Baolu Lu
2026-05-13 22:08 ` Jacob Pan
2026-05-14 6:51 ` Baolu Lu [this message]
2026-05-11 18:41 ` [PATCH v5 5/9] iommufd: Add an ioctl to query PA from IOVA for noiommu mode Jacob Pan
2026-05-11 18:58 ` Jacob Pan
2026-05-13 7:53 ` Baolu Lu
2026-05-13 12:22 ` Jason Gunthorpe
2026-05-13 22:20 ` Jacob Pan
2026-05-13 23:26 ` Jason Gunthorpe
2026-05-11 18:41 ` [PATCH v5 6/9] vfio/group: Add VFIO_CDEV_NOIOMMU Kconfig and tolerate NULL group Jacob Pan
2026-05-11 18:41 ` [PATCH v5 7/9] vfio: Enable cdev noiommu mode under iommufd Jacob Pan
2026-05-11 18:41 ` [PATCH v5 8/9] selftests/vfio: Add iommufd noiommu mode selftest for cdev Jacob Pan
2026-05-11 18:41 ` [PATCH v5 9/9] Documentation: Update VFIO NOIOMMU mode Jacob Pan
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=c15c4d4d-89a8-4ad9-86e2-e1adb3ff8b54@linux.intel.com \
--to=baolu.lu@linux.intel.com \
--cc=alex@shazbot.org \
--cc=dmatlack@google.com \
--cc=iommu@lists.linux.dev \
--cc=jacob.pan@linux.microsoft.com \
--cc=jgg@nvidia.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nicolinc@nvidia.com \
--cc=pasha.tatashin@soleen.com \
--cc=robin.murphy@arm.com \
--cc=skhawaja@google.com \
--cc=smostafa@google.com \
--cc=ssengar@linux.microsoft.com \
--cc=will@kernel.org \
--cc=yi.l.liu@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.