]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
drm: omapdrm: Fix implicit dma_buf fencing
authorIvaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
Wed, 5 Jan 2022 15:36:58 +0000 (17:36 +0200)
committerTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Thu, 6 Jan 2022 13:31:33 +0000 (15:31 +0200)
Currently omapdrm driver does not initialize dma_buf_export_info resv
member, which leads to a new dma_resv being allocated and attached to
the exported dma_buf. This leads to the issue that fences created on
dma_buf objects imported by other drivers are ignored by omapdrm, as only
fences in gem object resv are waited on. This leads to various issues like
displaying incomplete frames.

Fix that by initializing dma_buf resv to the resv of the gem object being
exported.

Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
Tested-by: Merlijn Wajer <merlijn@wizzup.org>
Tested-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/1641397018-29872-1-git-send-email-ivo.g.dimitrov.75@gmail.com
drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c

index 57af3d97be77a5d5f56de7a4a44fa3fd1755edaa..ab3fc86e7256c6e06679cf87f87d03e7e38fed84 100644 (file)
@@ -93,6 +93,7 @@ struct dma_buf *omap_gem_prime_export(struct drm_gem_object *obj, int flags)
        exp_info.size = omap_gem_mmap_size(obj);
        exp_info.flags = flags;
        exp_info.priv = obj;
+       exp_info.resv = obj->resv;
 
        return drm_gem_dmabuf_export(obj->dev, &exp_info);
 }