accel/ivpu: Disable buffer sharing among VPU contexts
authorJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Mon, 15 Jan 2024 13:44:32 +0000 (14:44 +0100)
committerJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Mon, 22 Jan 2024 09:28:52 +0000 (10:28 +0100)
commitb7a0e75632eb6568c82de9108bd29e130dd082d9
tree6fb429290e3d552458b56118c69fdab7e4027922
parenta8c099d5d0e4b0400cfddfd95b881c8bd9349a88
accel/ivpu: Disable buffer sharing among VPU contexts

This was not supported properly. A buffer was imported to another VPU
context as a separate buffer object with duplicated sgt.
Both exported and imported buffers could be DMA mapped causing a double
mapping on the same device.

Buffers imported from another VPU context will now just increase
reference count, leaving only a single sgt, fixing the problem above.
Buffers still can't be shared among VPU contexts because each has its
own MMU mapping and ivpu_bo only supports single MMU mappings.

The solution would be to use a mapping list as in panfrost or etnaviv
drivers and it will be implemented in future if required.

Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Reviewed-by: Andrzej Kacprowski <andrzej.kacprowski@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240115134434.493839-8-jacek.lawrynowicz@linux.intel.com
drivers/accel/ivpu/ivpu_gem.c