lkml.org 
[lkml]   [2019]   [May]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.0 340/346] drm/drv: Hold ref on parent device during drm_device lifetime
    Date
    [ Upstream commit 56be6503aab2bc3a30beae408071b9be5e1bae51 ]

    This makes it safe to access drm_device->dev after the parent device has
    been removed/unplugged.

    Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
    Reviewed-by: Gerd Hoffmann <kraxel@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190225144232.20761-2-noralf@tronnes.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/drm_drv.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
    index 7a59b8b3ed5a4..81c8936bc1d3c 100644
    --- a/drivers/gpu/drm/drm_drv.c
    +++ b/drivers/gpu/drm/drm_drv.c
    @@ -499,7 +499,7 @@ int drm_dev_init(struct drm_device *dev,
    BUG_ON(!parent);

    kref_init(&dev->ref);
    - dev->dev = parent;
    + dev->dev = get_device(parent);
    dev->driver = driver;

    /* no per-device feature limits by default */
    @@ -569,6 +569,7 @@ int drm_dev_init(struct drm_device *dev,
    drm_minor_free(dev, DRM_MINOR_RENDER);
    drm_fs_inode_free(dev->anon_inode);
    err_free:
    + put_device(dev->dev);
    mutex_destroy(&dev->master_mutex);
    mutex_destroy(&dev->ctxlist_mutex);
    mutex_destroy(&dev->clientlist_mutex);
    @@ -604,6 +605,8 @@ void drm_dev_fini(struct drm_device *dev)
    drm_minor_free(dev, DRM_MINOR_PRIMARY);
    drm_minor_free(dev, DRM_MINOR_RENDER);

    + put_device(dev->dev);
    +
    mutex_destroy(&dev->master_mutex);
    mutex_destroy(&dev->ctxlist_mutex);
    mutex_destroy(&dev->clientlist_mutex);
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-05-30 05:48    [W:4.048 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site