ARM: SMMU: clear page table ops of attached device

incase of error during dynamic attach,
added smmu attach device cleanup along with
free page table ops

Change-Id: Id8984d05002700014307a905fc7166702fa64a7d
Signed-off-by: vkakani <vkakani@codeaurora.org>
This commit is contained in:
vkakani 2018-05-29 15:41:04 +05:30 committed by Gerrit - the friendly Code Review server
parent 7c542d932b
commit 528c99691b

View file

@ -2256,8 +2256,17 @@ static int arm_smmu_attach_dynamic(struct iommu_domain *domain,
smmu_domain->pgtbl_ops = pgtbl_ops; smmu_domain->pgtbl_ops = pgtbl_ops;
ret = 0; ret = 0;
out: out:
if (ret) if (ret) {
free_io_pgtable_ops(pgtbl_ops); free_io_pgtable_ops(pgtbl_ops);
/* unassign any freed page table memory */
if (arm_smmu_is_master_side_secure(smmu_domain)) {
arm_smmu_secure_domain_lock(smmu_domain);
arm_smmu_secure_pool_destroy(smmu_domain);
arm_smmu_unassign_table(smmu_domain);
arm_smmu_secure_domain_unlock(smmu_domain);
}
smmu_domain->pgtbl_ops = NULL;
}
mutex_unlock(&smmu->attach_lock); mutex_unlock(&smmu->attach_lock);
return ret; return ret;