]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iommufd: Check the domain owner of the parent before creating a nesting domain
authorJason Gunthorpe <jgg@nvidia.com>
Thu, 29 Aug 2024 13:19:59 +0000 (10:19 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 4 Oct 2024 14:33:10 +0000 (16:33 +0200)
[ Upstream commit 73183ad6ea51029d04b098286dcee98d715015f1 ]

This check was missed, before we can pass a struct iommu_domain to a
driver callback we need to validate that the domain was created by that
driver.

Fixes: bd529dbb661d ("iommufd: Add a nested HW pagetable object")
Link: https://patch.msgid.link/r/0-v1-c8770519edde+1a-iommufd_nesting_ops_jgg@nvidia.com
Reviewed-by: Nicolin Chen <nicolinc@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/iommu/iommufd/hw_pagetable.c

index a9f1fe44c4c0bd3afdefb16f16b08f74d4560d53..21f0d8cbd7aade4181d699d5fe5d513843e75fd9 100644 (file)
@@ -215,7 +215,8 @@ iommufd_hwpt_nested_alloc(struct iommufd_ctx *ictx,
 
        if (flags || !user_data->len || !ops->domain_alloc_user)
                return ERR_PTR(-EOPNOTSUPP);
-       if (parent->auto_domain || !parent->nest_parent)
+       if (parent->auto_domain || !parent->nest_parent ||
+           parent->common.domain->owner != ops)
                return ERR_PTR(-EINVAL);
 
        hwpt_nested = __iommufd_object_alloc(