Loading drivers/iommu/arm-smmu.c +14 −14 Original line number Diff line number Diff line Loading @@ -500,7 +500,7 @@ static int arm_smmu_halt(struct arm_smmu_device *smmu); static void arm_smmu_device_reset(struct arm_smmu_device *smmu); static size_t arm_smmu_unmap(struct iommu_domain *domain, unsigned long iova, size_t size); static bool arm_smmu_is_domain_secure(struct arm_smmu_domain *smmu_domain); static bool arm_smmu_is_master_side_secure(struct arm_smmu_domain *smmu_domain); static void parse_driver_options(struct arm_smmu_device *smmu) Loading Loading @@ -1066,7 +1066,7 @@ static void *arm_smmu_alloc_pages_exact(void *cookie, void *ret; struct arm_smmu_domain *smmu_domain = cookie; if (!arm_smmu_is_domain_secure(smmu_domain)) if (!arm_smmu_is_master_side_secure(smmu_domain)) return alloc_pages_exact(size, gfp_mask); ret = arm_smmu_secure_pool_remove(smmu_domain, size); Loading @@ -1084,7 +1084,7 @@ static void arm_smmu_free_pages_exact(void *cookie, void *virt, size_t size) { struct arm_smmu_domain *smmu_domain = cookie; if (!arm_smmu_is_domain_secure(smmu_domain)) { if (!arm_smmu_is_master_side_secure(smmu_domain)) { free_pages_exact(virt, size); return; } Loading Loading @@ -1469,20 +1469,20 @@ static void arm_smmu_init_context_bank(struct arm_smmu_domain *smmu_domain, writel_relaxed(reg, cb_base + ARM_SMMU_CB_SCTLR); } static bool arm_smmu_is_domain_secure(struct arm_smmu_domain *smmu_domain) static bool arm_smmu_is_master_side_secure(struct arm_smmu_domain *smmu_domain) { return (smmu_domain->secure_vmid != VMID_INVAL); return smmu_domain->secure_vmid != VMID_INVAL; } static void arm_smmu_secure_domain_lock(struct arm_smmu_domain *smmu_domain) { if (arm_smmu_is_domain_secure(smmu_domain)) if (arm_smmu_is_master_side_secure(smmu_domain)) mutex_lock(&smmu_domain->assign_lock); } static void arm_smmu_secure_domain_unlock(struct arm_smmu_domain *smmu_domain) { if (arm_smmu_is_domain_secure(smmu_domain)) if (arm_smmu_is_master_side_secure(smmu_domain)) mutex_unlock(&smmu_domain->assign_lock); } Loading Loading @@ -1586,7 +1586,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain, * assign any page table memory that might have been allocated * during alloc_io_pgtable_ops */ if (arm_smmu_is_domain_secure(smmu_domain)) { if (arm_smmu_is_master_side_secure(smmu_domain)) { arm_smmu_secure_domain_lock(smmu_domain); arm_smmu_assign_table(smmu_domain); arm_smmu_secure_domain_unlock(smmu_domain); Loading Loading @@ -1695,7 +1695,7 @@ static void arm_smmu_domain_destroy(struct iommu_domain *domain) if (smmu_domain->pgtbl_ops) { free_io_pgtable_ops(smmu_domain->pgtbl_ops); /* unassign any freed page table memory */ if (arm_smmu_is_domain_secure(smmu_domain)) { 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); Loading Loading @@ -1897,7 +1897,7 @@ static int arm_smmu_attach_dynamic(struct iommu_domain *domain, * assign any page table memory that might have been allocated * during alloc_io_pgtable_ops */ if (arm_smmu_is_domain_secure(smmu_domain)) { if (arm_smmu_is_master_side_secure(smmu_domain)) { arm_smmu_secure_domain_lock(smmu_domain); arm_smmu_assign_table(smmu_domain); arm_smmu_secure_domain_unlock(smmu_domain); Loading Loading @@ -2124,7 +2124,7 @@ static int arm_smmu_assign_table(struct arm_smmu_domain *smmu_domain) int source_vmid = VMID_HLOS; struct arm_smmu_pte_info *pte_info, *temp; if (!arm_smmu_is_domain_secure(smmu_domain)) if (!arm_smmu_is_master_side_secure(smmu_domain)) return ret; list_for_each_entry(pte_info, &smmu_domain->pte_info_list, entry) { Loading @@ -2151,7 +2151,7 @@ static void arm_smmu_unassign_table(struct arm_smmu_domain *smmu_domain) int source_vmlist[2] = {VMID_HLOS, smmu_domain->secure_vmid}; struct arm_smmu_pte_info *pte_info, *temp; if (!arm_smmu_is_domain_secure(smmu_domain)) if (!arm_smmu_is_master_side_secure(smmu_domain)) return; list_for_each_entry(pte_info, &smmu_domain->unassign_list, entry) { Loading @@ -2177,7 +2177,7 @@ static void arm_smmu_unprepare_pgtable(void *cookie, void *addr, size_t size) struct arm_smmu_domain *smmu_domain = cookie; struct arm_smmu_pte_info *pte_info; BUG_ON(!arm_smmu_is_domain_secure(smmu_domain)); BUG_ON(!arm_smmu_is_master_side_secure(smmu_domain)); pte_info = kzalloc(sizeof(struct arm_smmu_pte_info), GFP_ATOMIC); if (!pte_info) Loading @@ -2193,7 +2193,7 @@ static void arm_smmu_prepare_pgtable(void *addr, void *cookie) struct arm_smmu_domain *smmu_domain = cookie; struct arm_smmu_pte_info *pte_info; BUG_ON(!arm_smmu_is_domain_secure(smmu_domain)); BUG_ON(!arm_smmu_is_master_side_secure(smmu_domain)); pte_info = kzalloc(sizeof(struct arm_smmu_pte_info), GFP_ATOMIC); if (!pte_info) Loading Loading
drivers/iommu/arm-smmu.c +14 −14 Original line number Diff line number Diff line Loading @@ -500,7 +500,7 @@ static int arm_smmu_halt(struct arm_smmu_device *smmu); static void arm_smmu_device_reset(struct arm_smmu_device *smmu); static size_t arm_smmu_unmap(struct iommu_domain *domain, unsigned long iova, size_t size); static bool arm_smmu_is_domain_secure(struct arm_smmu_domain *smmu_domain); static bool arm_smmu_is_master_side_secure(struct arm_smmu_domain *smmu_domain); static void parse_driver_options(struct arm_smmu_device *smmu) Loading Loading @@ -1066,7 +1066,7 @@ static void *arm_smmu_alloc_pages_exact(void *cookie, void *ret; struct arm_smmu_domain *smmu_domain = cookie; if (!arm_smmu_is_domain_secure(smmu_domain)) if (!arm_smmu_is_master_side_secure(smmu_domain)) return alloc_pages_exact(size, gfp_mask); ret = arm_smmu_secure_pool_remove(smmu_domain, size); Loading @@ -1084,7 +1084,7 @@ static void arm_smmu_free_pages_exact(void *cookie, void *virt, size_t size) { struct arm_smmu_domain *smmu_domain = cookie; if (!arm_smmu_is_domain_secure(smmu_domain)) { if (!arm_smmu_is_master_side_secure(smmu_domain)) { free_pages_exact(virt, size); return; } Loading Loading @@ -1469,20 +1469,20 @@ static void arm_smmu_init_context_bank(struct arm_smmu_domain *smmu_domain, writel_relaxed(reg, cb_base + ARM_SMMU_CB_SCTLR); } static bool arm_smmu_is_domain_secure(struct arm_smmu_domain *smmu_domain) static bool arm_smmu_is_master_side_secure(struct arm_smmu_domain *smmu_domain) { return (smmu_domain->secure_vmid != VMID_INVAL); return smmu_domain->secure_vmid != VMID_INVAL; } static void arm_smmu_secure_domain_lock(struct arm_smmu_domain *smmu_domain) { if (arm_smmu_is_domain_secure(smmu_domain)) if (arm_smmu_is_master_side_secure(smmu_domain)) mutex_lock(&smmu_domain->assign_lock); } static void arm_smmu_secure_domain_unlock(struct arm_smmu_domain *smmu_domain) { if (arm_smmu_is_domain_secure(smmu_domain)) if (arm_smmu_is_master_side_secure(smmu_domain)) mutex_unlock(&smmu_domain->assign_lock); } Loading Loading @@ -1586,7 +1586,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain, * assign any page table memory that might have been allocated * during alloc_io_pgtable_ops */ if (arm_smmu_is_domain_secure(smmu_domain)) { if (arm_smmu_is_master_side_secure(smmu_domain)) { arm_smmu_secure_domain_lock(smmu_domain); arm_smmu_assign_table(smmu_domain); arm_smmu_secure_domain_unlock(smmu_domain); Loading Loading @@ -1695,7 +1695,7 @@ static void arm_smmu_domain_destroy(struct iommu_domain *domain) if (smmu_domain->pgtbl_ops) { free_io_pgtable_ops(smmu_domain->pgtbl_ops); /* unassign any freed page table memory */ if (arm_smmu_is_domain_secure(smmu_domain)) { 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); Loading Loading @@ -1897,7 +1897,7 @@ static int arm_smmu_attach_dynamic(struct iommu_domain *domain, * assign any page table memory that might have been allocated * during alloc_io_pgtable_ops */ if (arm_smmu_is_domain_secure(smmu_domain)) { if (arm_smmu_is_master_side_secure(smmu_domain)) { arm_smmu_secure_domain_lock(smmu_domain); arm_smmu_assign_table(smmu_domain); arm_smmu_secure_domain_unlock(smmu_domain); Loading Loading @@ -2124,7 +2124,7 @@ static int arm_smmu_assign_table(struct arm_smmu_domain *smmu_domain) int source_vmid = VMID_HLOS; struct arm_smmu_pte_info *pte_info, *temp; if (!arm_smmu_is_domain_secure(smmu_domain)) if (!arm_smmu_is_master_side_secure(smmu_domain)) return ret; list_for_each_entry(pte_info, &smmu_domain->pte_info_list, entry) { Loading @@ -2151,7 +2151,7 @@ static void arm_smmu_unassign_table(struct arm_smmu_domain *smmu_domain) int source_vmlist[2] = {VMID_HLOS, smmu_domain->secure_vmid}; struct arm_smmu_pte_info *pte_info, *temp; if (!arm_smmu_is_domain_secure(smmu_domain)) if (!arm_smmu_is_master_side_secure(smmu_domain)) return; list_for_each_entry(pte_info, &smmu_domain->unassign_list, entry) { Loading @@ -2177,7 +2177,7 @@ static void arm_smmu_unprepare_pgtable(void *cookie, void *addr, size_t size) struct arm_smmu_domain *smmu_domain = cookie; struct arm_smmu_pte_info *pte_info; BUG_ON(!arm_smmu_is_domain_secure(smmu_domain)); BUG_ON(!arm_smmu_is_master_side_secure(smmu_domain)); pte_info = kzalloc(sizeof(struct arm_smmu_pte_info), GFP_ATOMIC); if (!pte_info) Loading @@ -2193,7 +2193,7 @@ static void arm_smmu_prepare_pgtable(void *addr, void *cookie) struct arm_smmu_domain *smmu_domain = cookie; struct arm_smmu_pte_info *pte_info; BUG_ON(!arm_smmu_is_domain_secure(smmu_domain)); BUG_ON(!arm_smmu_is_master_side_secure(smmu_domain)); pte_info = kzalloc(sizeof(struct arm_smmu_pte_info), GFP_ATOMIC); if (!pte_info) Loading