mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-10 07:59:42 -04:00
iommu: Make @handle mandatory in iommu_{attach|replace}_group_handle()
Caller of the two APIs always provide a valid handle, make @handle as mandatory parameter. Take this chance incoporate the handle->domain set under the protection of group->mutex in iommu_attach_group_handle(). Link: https://patch.msgid.link/r/20250226011849.5102-2-yi.l.liu@intel.com Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Reviewed-by: Nicolin Chen <nicolinc@nvidia.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com> Signed-off-by: Yi Liu <yi.l.liu@intel.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
This commit is contained in:
@@ -3511,10 +3511,11 @@ int iommu_attach_group_handle(struct iommu_domain *domain,
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (handle)
|
||||
handle->domain = domain;
|
||||
if (!handle)
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock(&group->mutex);
|
||||
handle->domain = domain;
|
||||
ret = xa_insert(&group->pasid_array, IOMMU_NO_PASID, handle, GFP_KERNEL);
|
||||
if (ret)
|
||||
goto err_unlock;
|
||||
@@ -3568,16 +3569,14 @@ int iommu_replace_group_handle(struct iommu_group *group,
|
||||
void *curr;
|
||||
int ret;
|
||||
|
||||
if (!new_domain)
|
||||
if (!new_domain || !handle)
|
||||
return -EINVAL;
|
||||
|
||||
mutex_lock(&group->mutex);
|
||||
if (handle) {
|
||||
ret = xa_reserve(&group->pasid_array, IOMMU_NO_PASID, GFP_KERNEL);
|
||||
if (ret)
|
||||
goto err_unlock;
|
||||
handle->domain = new_domain;
|
||||
}
|
||||
handle->domain = new_domain;
|
||||
ret = xa_reserve(&group->pasid_array, IOMMU_NO_PASID, GFP_KERNEL);
|
||||
if (ret)
|
||||
goto err_unlock;
|
||||
|
||||
ret = __iommu_group_set_domain(group, new_domain);
|
||||
if (ret)
|
||||
|
||||
Reference in New Issue
Block a user