• Chris Wilson's avatar
    drm: Provide a driver hook for drm_dev_release() · f30c9257
    Chris Wilson authored
    Some state is coupled into the device lifetime outside of the
    load/unload timeframe and requires teardown during final unreference
    from drm_dev_release(). For example, dmabufs hold both a device and
    module reference and may live longer than expected (i.e. the current
    pattern of the driver tearing down its state and then releasing a
    reference to the drm device) and yet touch driver private state when
    destroyed.
    
    v2: Export drm_dev_fini() and move the responsibility for finalizing the
    drm_device and freeing it to the release callback. (If no callback is
    provided, the core will call drm_dev_fini() and kfree(dev) as before.)
    v3: Remember to add drm_dev_fini() to drm_drv.h
    v4: Tidy language for kerneldoc
    v5: Cross reference from drm_dev_init() to note that driver->release()
    allows for arbitrary embedding.
    v6: Refer to driver data rather than driver state, as state is now
    becoming associated with the struct drm_atomic_state and friends.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Reviewed-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
    [danvet: Use the proper reference for struct members, which is
    &drm_driver.release.]
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170202093632.31017-1-chris@chris-wilson.co.uk
    f30c9257
drm_drv.c 26.2 KB