mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 17:57:38 -04:00
accel/ivpu: Fix race condition when mapping dmabuf
Fix a race that can occur when multiple jobs submit the same dmabuf.
This could cause the sg_table to be mapped twice, leading to undefined
behavior.
Fixes: e0c0891cd6 ("accel/ivpu: Rework bind/unbind of imported buffers")
Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com>
Reviewed-by: Jeff Hugo <jeff.hugo@oss.qualcomm.com>
Signed-off-by: Karol Wachowski <karol.wachowski@linux.intel.com>
Link: https://lore.kernel.org/r/20251014071725.3047287-1-karol.wachowski@linux.intel.com
This commit is contained in:
committed by
Karol Wachowski
parent
7fb19ea1ec
commit
63c7870fab
@@ -46,12 +46,13 @@ static inline void ivpu_bo_unlock(struct ivpu_bo *bo)
|
||||
|
||||
static struct sg_table *ivpu_bo_map_attachment(struct ivpu_device *vdev, struct ivpu_bo *bo)
|
||||
{
|
||||
struct sg_table *sgt = bo->base.sgt;
|
||||
struct sg_table *sgt;
|
||||
|
||||
drm_WARN_ON(&vdev->drm, !bo->base.base.import_attach);
|
||||
|
||||
ivpu_bo_lock(bo);
|
||||
|
||||
sgt = bo->base.sgt;
|
||||
if (!sgt) {
|
||||
sgt = dma_buf_map_attachment(bo->base.base.import_attach, DMA_BIDIRECTIONAL);
|
||||
if (IS_ERR(sgt))
|
||||
|
||||
Reference in New Issue
Block a user