Re: [PATCH 3/3] drm/omap: Fix locking in omap_gem_new_dmabuf()

2024-08-06 Thread Markus Elfring
… > +++ b/drivers/gpu/drm/omapdrm/omap_gem.c … > @@ -1418,21 +1416,17 @@ struct drm_gem_object *omap_gem_new_dmabuf(struct > drm_device *dev, size_t size, > pages = kcalloc(npages, sizeof(*pages), GFP_KERNEL); > if (!pages) { > omap_gem_free_object

[PATCH 3/3] drm/omap: Fix locking in omap_gem_new_dmabuf()

2024-08-06 Thread Tomi Valkeinen
omap_gem_new_dmabuf() creates the new gem object, and then takes and holds the omap_obj->lock for the rest of the function. This has two issues: - omap_gem_free_object(), which is called in the error paths, also takes the same lock, leading to deadlock - Even if the above wouldn't happen, in the