On Tue, Oct 29, 2024 at 12:34:38PM -0300, Jason Gunthorpe wrote:
On Fri, Oct 25, 2024 at 04:49:49PM -0700, Nicolin Chen wrote:
For an iommu_dev that can unplug (so far only this selftest does so), the viommu->iommu_dev pointer has no guarantee of its life cycle after it is copied from the idev->dev->iommu->iommu_dev.
Track the user count of the iommu_dev. Postpone the exit routine using a completion, if refcount is unbalanced. The refcount inc/dec will be added in the following patch.
Signed-off-by: Nicolin Chen nicolinc@nvidia.com
drivers/iommu/iommufd/selftest.c | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-)
Reviewed-by: Jason Gunthorpe jgg@nvidia.com
Since this is built into the iommufd module it can't be unloaded without also unloading iommufd, which is impossible as long as any iommufd FDs are open. So I expect that the WARN_ON can never happen.
Hmm, I assume we still need this patch then?
Could a faulty "--force" possibly trigger it?
Nicolin