diff options
| author | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2025-10-03 17:57:30 +0300 |
|---|---|---|
| committer | Ville Syrjälä <ville.syrjala@linux.intel.com> | 2025-10-09 21:01:48 +0300 |
| commit | eb4d490729a5fd8dc5a76d334f8d01fec7c14bbe (patch) | |
| tree | 948188851423a87f04c6a0dc9137fe691580d2fb /tools/perf/scripts/python/bin | |
| parent | 76e46dbf80918ef0dc8e489f88959bab48b6b9ce (diff) | |
| download | linux-eb4d490729a5fd8dc5a76d334f8d01fec7c14bbe.tar.gz linux-eb4d490729a5fd8dc5a76d334f8d01fec7c14bbe.zip | |
drm/i915/frontbuffer: Move bo refcounting intel_frontbuffer_{get,release}()
Currently xe's intel_frontbuffer implementation forgets to
hold a reference on the bo. This makes the entire thing
extremely fragile as the cleanup order now depends on bo
references held by other things
(namely intel_fb_bo_framebuffer_fini()).
Move the bo refcounting to intel_frontbuffer_{get,release}()
so that both i915 and xe do this the same way.
I first tried to fix this by having xe do the refcounting
from its intel_bo_set_frontbuffer() implementation
(which is what i915 does currently), but turns out xe's
drm_gem_object_free() can sleep and thus drm_gem_object_put()
isn't safe to call while we hold fb_tracking.lock.
Fixes: 10690b8a49bc ("drm/i915/display: Add intel_fb_bo_framebuffer_fini")
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20251003145734.7634-2-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'tools/perf/scripts/python/bin')
0 files changed, 0 insertions, 0 deletions
