Loading drivers/gpu/drm/msm/msm_gem.c +2 −1 Original line number Diff line number Diff line Loading @@ -490,7 +490,7 @@ int msm_gem_get_iova(struct drm_gem_object *obj, *iova = vma->iova; if (aspace && aspace->domain_attached) { if (aspace && !msm_obj->in_active_list) { mutex_lock(&aspace->list_lock); msm_gem_add_obj_to_aspace_active_list(aspace, obj); mutex_unlock(&aspace->list_lock); Loading Loading @@ -1035,6 +1035,7 @@ static int msm_gem_new_impl(struct drm_device *dev, INIT_LIST_HEAD(&msm_obj->vmas); INIT_LIST_HEAD(&msm_obj->iova_list); msm_obj->aspace = NULL; msm_obj->in_active_list = false; if (struct_mutex_locked) { WARN_ON(!mutex_is_locked(&dev->struct_mutex)); Loading drivers/gpu/drm/msm/msm_gem.h +1 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,7 @@ struct msm_gem_object { struct list_head iova_list; struct msm_gem_address_space *aspace; bool in_active_list; }; #define to_msm_bo(x) container_of(x, struct msm_gem_object, base) Loading drivers/gpu/drm/msm/msm_gem_vma.c +2 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ static void smmu_aspace_add_to_active( { WARN_ON(!mutex_is_locked(&aspace->list_lock)); list_move_tail(&msm_obj->iova_list, &aspace->active_list); msm_obj->in_active_list = true; } static void smmu_aspace_remove_from_active( Loading @@ -81,6 +82,7 @@ static void smmu_aspace_remove_from_active( list_for_each_entry_safe(msm_obj, next, &aspace->active_list, iova_list) { if (msm_obj == obj) { msm_obj->in_active_list = false; list_del(&msm_obj->iova_list); break; } Loading drivers/gpu/drm/msm/sde/sde_kms.c +1 −1 Original line number Diff line number Diff line Loading @@ -1799,8 +1799,8 @@ int sde_kms_mmu_attach(struct sde_kms *sde_kms, bool secure_only) aspace->mmu->funcs->attach(mmu, (const char **)iommu_ports, ARRAY_SIZE(iommu_ports)); msm_gem_aspace_domain_attach_detach_update(aspace, false); aspace->domain_attached = true; msm_gem_aspace_domain_attach_detach_update(aspace, false); } return 0; Loading Loading
drivers/gpu/drm/msm/msm_gem.c +2 −1 Original line number Diff line number Diff line Loading @@ -490,7 +490,7 @@ int msm_gem_get_iova(struct drm_gem_object *obj, *iova = vma->iova; if (aspace && aspace->domain_attached) { if (aspace && !msm_obj->in_active_list) { mutex_lock(&aspace->list_lock); msm_gem_add_obj_to_aspace_active_list(aspace, obj); mutex_unlock(&aspace->list_lock); Loading Loading @@ -1035,6 +1035,7 @@ static int msm_gem_new_impl(struct drm_device *dev, INIT_LIST_HEAD(&msm_obj->vmas); INIT_LIST_HEAD(&msm_obj->iova_list); msm_obj->aspace = NULL; msm_obj->in_active_list = false; if (struct_mutex_locked) { WARN_ON(!mutex_is_locked(&dev->struct_mutex)); Loading
drivers/gpu/drm/msm/msm_gem.h +1 −0 Original line number Diff line number Diff line Loading @@ -134,6 +134,7 @@ struct msm_gem_object { struct list_head iova_list; struct msm_gem_address_space *aspace; bool in_active_list; }; #define to_msm_bo(x) container_of(x, struct msm_gem_object, base) Loading
drivers/gpu/drm/msm/msm_gem_vma.c +2 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ static void smmu_aspace_add_to_active( { WARN_ON(!mutex_is_locked(&aspace->list_lock)); list_move_tail(&msm_obj->iova_list, &aspace->active_list); msm_obj->in_active_list = true; } static void smmu_aspace_remove_from_active( Loading @@ -81,6 +82,7 @@ static void smmu_aspace_remove_from_active( list_for_each_entry_safe(msm_obj, next, &aspace->active_list, iova_list) { if (msm_obj == obj) { msm_obj->in_active_list = false; list_del(&msm_obj->iova_list); break; } Loading
drivers/gpu/drm/msm/sde/sde_kms.c +1 −1 Original line number Diff line number Diff line Loading @@ -1799,8 +1799,8 @@ int sde_kms_mmu_attach(struct sde_kms *sde_kms, bool secure_only) aspace->mmu->funcs->attach(mmu, (const char **)iommu_ports, ARRAY_SIZE(iommu_ports)); msm_gem_aspace_domain_attach_detach_update(aspace, false); aspace->domain_attached = true; msm_gem_aspace_domain_attach_detach_update(aspace, false); } return 0; Loading