Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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/

authored by

Rob Clark and committed by
Rob Clark
b5e7a2f1 da0e1407

+5 -13
+3 -13
drivers/gpu/drm/msm/msm_gem.c
··· 349 349 return NULL; 350 350 } 351 351 352 - static void del_vma(struct msm_gem_vma *vma) 353 - { 354 - if (!vma) 355 - return; 356 - 357 - list_del(&vma->list); 358 - kfree(vma); 359 - } 360 - 361 352 /* 362 353 * If close is true, this also closes the VMA (releasing the allocated 363 354 * iova range) in addition to removing the iommu mapping. In the eviction ··· 359 368 put_iova_spaces(struct drm_gem_object *obj, bool close) 360 369 { 361 370 struct msm_gem_object *msm_obj = to_msm_bo(obj); 362 - struct msm_gem_vma *vma; 371 + struct msm_gem_vma *vma, *tmp; 363 372 364 373 msm_gem_assert_locked(obj); 365 374 366 - list_for_each_entry(vma, &msm_obj->vmas, list) { 375 + list_for_each_entry_safe(vma, tmp, &msm_obj->vmas, list) { 367 376 if (vma->vm) { 368 377 msm_gem_vma_purge(vma); 369 378 if (close) ··· 382 391 msm_gem_assert_locked(obj); 383 392 384 393 list_for_each_entry_safe(vma, tmp, &msm_obj->vmas, list) { 385 - del_vma(vma); 394 + msm_gem_vma_close(vma); 386 395 } 387 396 } 388 397 ··· 547 556 548 557 msm_gem_vma_purge(vma); 549 558 msm_gem_vma_close(vma); 550 - del_vma(vma); 551 559 552 560 return 0; 553 561 }
+2
drivers/gpu/drm/msm/msm_gem_vma.c
··· 102 102 spin_unlock(&vm->lock); 103 103 104 104 vma->iova = 0; 105 + list_del(&vma->list); 105 106 106 107 msm_gem_vm_put(vm); 108 + kfree(vma); 107 109 } 108 110 109 111 /* Create a new vma and allocate an iova for it */