Lines Matching refs:ioas
16 mutex_lock(&hwpt->ioas->mutex); in iommufd_hw_pagetable_destroy()
18 mutex_unlock(&hwpt->ioas->mutex); in iommufd_hw_pagetable_destroy()
20 iopt_table_remove_domain(&hwpt->ioas->iopt, hwpt->domain); in iommufd_hw_pagetable_destroy()
26 refcount_dec(&hwpt->ioas->obj.users); in iommufd_hw_pagetable_destroy()
35 lockdep_assert_held(&hwpt->ioas->mutex); in iommufd_hw_pagetable_abort()
39 iopt_table_remove_domain(&hwpt->ioas->iopt, hwpt->domain); in iommufd_hw_pagetable_abort()
74 iommufd_hw_pagetable_alloc(struct iommufd_ctx *ictx, struct iommufd_ioas *ioas, in iommufd_hw_pagetable_alloc() argument
80 lockdep_assert_held(&ioas->mutex); in iommufd_hw_pagetable_alloc()
88 refcount_inc(&ioas->obj.users); in iommufd_hw_pagetable_alloc()
89 hwpt->ioas = ioas; in iommufd_hw_pagetable_alloc()
122 rc = iopt_table_add_domain(&hwpt->ioas->iopt, hwpt->domain); in iommufd_hw_pagetable_alloc()
125 list_add_tail(&hwpt->hwpt_item, &hwpt->ioas->hwpt_list); in iommufd_hw_pagetable_alloc()
141 struct iommufd_ioas *ioas; in iommufd_hwpt_alloc() local
151 ioas = iommufd_get_ioas(ucmd->ictx, cmd->pt_id); in iommufd_hwpt_alloc()
152 if (IS_ERR(ioas)) { in iommufd_hwpt_alloc()
153 rc = PTR_ERR(ioas); in iommufd_hwpt_alloc()
157 mutex_lock(&ioas->mutex); in iommufd_hwpt_alloc()
158 hwpt = iommufd_hw_pagetable_alloc(ucmd->ictx, ioas, idev, false); in iommufd_hwpt_alloc()
174 mutex_unlock(&ioas->mutex); in iommufd_hwpt_alloc()
175 iommufd_put_object(&ioas->obj); in iommufd_hwpt_alloc()