• Dave Airlie's avatar
    drm/modes: move reference taking into object lookup. · 72fe90b8
    Dave Airlie authored
    When we lookup an ref counted object we now take a proper reference
    using kref_get_unless_zero.
    
    Framebuffer lookup no longer needs do this itself.
    
    Convert rmfb to using framebuffer lookup and deal with the fact
    it now gets an extra reference that we have to cleanup. This should
    mean we can avoid holding fb_lock across rmfb. (if I'm wrong let me
    know).
    
    We also now only hold the fbs_lock around the list manipulation.
    
    "Previously fb refcounting, and especially the weak reference
    (kref_get_unless_zero) used in fb lookups have been protected by fb_lock.
    But with the refactoring to share refcounting in the drm_mode_object base
    class that switched to being protected by idr_mutex, which means fb_lock
    critical sections can be reduced."
    Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    72fe90b8
drm_crtc.c 163 KB