[PATCH v3] drm/framebuffer: Acquire internal references on GEM handles
Borislav Petkov
bp at alien8.de
Tue Jul 8 14:44:37 UTC 2025
On Mon, Jul 07, 2025 at 03:11:55PM +0200, Thomas Zimmermann wrote:
> Acquire GEM handles in drm_framebuffer_init() and release them in
> the corresponding drm_framebuffer_cleanup(). Ties the handle's
> lifetime to the framebuffer. Not all GEM buffer objects have GEM
> handles. If not set, no refcounting takes place. This is the case
> for some fbdev emulation. This is not a problem as these GEM objects
> do not use dma-bufs and drivers will not release them while fbdev
> emulation is running. Framebuffer flags keep a bit per color plane
> of which the framebuffer holds a GEM handle reference.
>
> As all drivers use drm_framebuffer_init(), they will now all hold
> dma-buf references as fixed in commit 5307dce878d4 ("drm/gem: Acquire
> references on GEM handles for framebuffers").
>
> In the GEM framebuffer helpers, restore the original ref counting
> on buffer objects. As the helpers for handle refcounting are now
> no longer called from outside the DRM core, unexport the symbols.
>
> v3:
> - don't mix internal flags with mode flags (Christian)
> v2:
> - track framebuffer handle refs by flag
> - drop gma500 cleanup (Christian)
>
> Signed-off-by: Thomas Zimmermann <tzimmermann at suse.de>
> Fixes: 5307dce878d4 ("drm/gem: Acquire references on GEM handles for framebuffers")
> Reported-by: Bert Karwatzki <spasswolf at web.de>
> Closes: https://lore.kernel.org/dri-devel/20250703115915.3096-1-spasswolf@web.de/
> Tested-by: Bert Karwatzki <spasswolf at web.de>
> Tested-by: Mario Limonciello <superm1 at kernel.org>
> Cc: Thomas Zimmermann <tzimmermann at suse.de>
> Cc: Anusha Srivatsa <asrivats at redhat.com>
> Cc: Christian König <christian.koenig at amd.com>
> Cc: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> Cc: Maxime Ripard <mripard at kernel.org>
> Cc: Sumit Semwal <sumit.semwal at linaro.org>
> Cc: "Christian König" <christian.koenig at amd.com>
> Cc: linux-media at vger.kernel.org
> Cc: dri-devel at lists.freedesktop.org
> Cc: linaro-mm-sig at lists.linaro.org
> Cc: <stable at vger.kernel.org>
> ---
> drivers/gpu/drm/drm_framebuffer.c | 31 ++++++++++++++--
> drivers/gpu/drm/drm_gem.c | 38 ++++++++++++--------
> drivers/gpu/drm/drm_gem_framebuffer_helper.c | 16 ++++-----
> drivers/gpu/drm/drm_internal.h | 2 +-
> include/drm/drm_framebuffer.h | 7 ++++
> 5 files changed, 68 insertions(+), 26 deletions(-)
Thanks, that fixes it:
Reported-by: Borislav Petkov (AMD) <bp at alien8.de>
Tested-by: Borislav Petkov (AMD) <bp at alien8.de>
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
More information about the dri-devel
mailing list