mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
drm/msm: Collapse vma close and delete
This fits better drm_gpuvm/drm_gpuva. Signed-off-by: Rob Clark <robdclark@chromium.org> Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com> Tested-by: Antonino Maniscalco <antomani103@gmail.com> Reviewed-by: Antonino Maniscalco <antomani103@gmail.com> Patchwork: https://patchwork.freedesktop.org/patch/661470/
This commit is contained in:
parent
da0e1407be
commit
b5e7a2f1a3
|
|
@ -349,15 +349,6 @@ static struct msm_gem_vma *lookup_vma(struct drm_gem_object *obj,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void del_vma(struct msm_gem_vma *vma)
|
||||
{
|
||||
if (!vma)
|
||||
return;
|
||||
|
||||
list_del(&vma->list);
|
||||
kfree(vma);
|
||||
}
|
||||
|
||||
/*
|
||||
* If close is true, this also closes the VMA (releasing the allocated
|
||||
* iova range) in addition to removing the iommu mapping. In the eviction
|
||||
|
|
@ -368,11 +359,11 @@ static void
|
|||
put_iova_spaces(struct drm_gem_object *obj, bool close)
|
||||
{
|
||||
struct msm_gem_object *msm_obj = to_msm_bo(obj);
|
||||
struct msm_gem_vma *vma;
|
||||
struct msm_gem_vma *vma, *tmp;
|
||||
|
||||
msm_gem_assert_locked(obj);
|
||||
|
||||
list_for_each_entry(vma, &msm_obj->vmas, list) {
|
||||
list_for_each_entry_safe(vma, tmp, &msm_obj->vmas, list) {
|
||||
if (vma->vm) {
|
||||
msm_gem_vma_purge(vma);
|
||||
if (close)
|
||||
|
|
@ -391,7 +382,7 @@ put_iova_vmas(struct drm_gem_object *obj)
|
|||
msm_gem_assert_locked(obj);
|
||||
|
||||
list_for_each_entry_safe(vma, tmp, &msm_obj->vmas, list) {
|
||||
del_vma(vma);
|
||||
msm_gem_vma_close(vma);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -556,7 +547,6 @@ static int clear_iova(struct drm_gem_object *obj,
|
|||
|
||||
msm_gem_vma_purge(vma);
|
||||
msm_gem_vma_close(vma);
|
||||
del_vma(vma);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -102,8 +102,10 @@ void msm_gem_vma_close(struct msm_gem_vma *vma)
|
|||
spin_unlock(&vm->lock);
|
||||
|
||||
vma->iova = 0;
|
||||
list_del(&vma->list);
|
||||
|
||||
msm_gem_vm_put(vm);
|
||||
kfree(vma);
|
||||
}
|
||||
|
||||
/* Create a new vma and allocate an iova for it */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user