accel/ivpu: Fix locking in ivpu_bo_remove_all_bos_from_context()
authorJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Tue, 31 Oct 2023 07:31:54 +0000 (08:31 +0100)
committerJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Wed, 8 Nov 2023 15:27:35 +0000 (16:27 +0100)
commit48aea7f2a2efae6a1bd201061c71a81b3f3b7e55
tree7643e857482ecb6f87580703a72e6dcc6c55ce03
parentb035224134626f506c1af73ca32bbc64dd2925ad
accel/ivpu: Fix locking in ivpu_bo_remove_all_bos_from_context()

ivpu_bo_remove_all_bos_from_context() could race with ivpu_bo_free()
when prime buffer was closed after vpu device was closed.

Move the bo_list from context to vdev and use a dedicated lock to
sync it. This list is not modified when BO is added/removed from
a context.

Also rename ivpu_bo_free_vpu_addr() to ivpu_bo_unbind() because this
function does more then just free vpu_addr.

Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20231031073156.1301669-3-stanislaw.gruszka@linux.intel.com
drivers/accel/ivpu/ivpu_drv.c
drivers/accel/ivpu/ivpu_drv.h
drivers/accel/ivpu/ivpu_gem.c
drivers/accel/ivpu/ivpu_gem.h
drivers/accel/ivpu/ivpu_mmu.c
drivers/accel/ivpu/ivpu_mmu_context.c
drivers/accel/ivpu/ivpu_mmu_context.h