• Thomas Zimmermann's avatar
    drm/client: Do not acquire module reference · 312292a4
    Thomas Zimmermann authored
    
    
    Do not acquire a reference on the module that provides a client's
    callback functions in drm_client_init(). The additional reference
    prevents the user from unloading the callback functions' module and
    thus creating dangling pointers.
    
    This is only necessary if there is no direct dependency between the
    caller of drm_client_init() and the provider of the callbacks in
    struct drm_client_funcs. If this case ever existed, it has been
    removed from the DRM code. Callers of drm_client_init() also provide
    the callback implementation. The lifetime of the clients is tied to
    the dependency chain's outer-most module, which is the hardware's
    DRM driver. Before client helpers could be unloaded, the driver module
    would have to be unloaded, which also unregisters all clients.
    
    Driver modules that set up DRM clients can now be unloaded.
    Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
    Acked-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20231102131056.7256-2-tzimmermann@suse.de
    312292a4
drm_client.c 13.9 KB