lkml.org 
[lkml]   [2021]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 073/340] drm/fb-helper: Add missed unlocks in setcmap_legacy()
    Date
    From: Chuhong Yuan <hslester96@gmail.com>

    [ Upstream commit 0a260e731d6c4c17547ac275a2cde888a9eb4a3d ]

    setcmap_legacy() does not call drm_modeset_unlock_all() in some exits,
    add the missed unlocks with goto to fix it.

    Fixes: 964c60063bff ("drm/fb-helper: separate the fb_setcmap helper into atomic and legacy paths")
    Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/20201203144248.418281-1-hslester96@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/drm_fb_helper.c | 15 ++++++++++-----
    1 file changed, 10 insertions(+), 5 deletions(-)

    diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
    index 6b8502bcf0fd3..02ffde5fd7226 100644
    --- a/drivers/gpu/drm/drm_fb_helper.c
    +++ b/drivers/gpu/drm/drm_fb_helper.c
    @@ -965,11 +965,15 @@ static int setcmap_legacy(struct fb_cmap *cmap, struct fb_info *info)
    drm_modeset_lock_all(fb_helper->dev);
    drm_client_for_each_modeset(modeset, &fb_helper->client) {
    crtc = modeset->crtc;
    - if (!crtc->funcs->gamma_set || !crtc->gamma_size)
    - return -EINVAL;
    + if (!crtc->funcs->gamma_set || !crtc->gamma_size) {
    + ret = -EINVAL;
    + goto out;
    + }

    - if (cmap->start + cmap->len > crtc->gamma_size)
    - return -EINVAL;
    + if (cmap->start + cmap->len > crtc->gamma_size) {
    + ret = -EINVAL;
    + goto out;
    + }

    r = crtc->gamma_store;
    g = r + crtc->gamma_size;
    @@ -982,8 +986,9 @@ static int setcmap_legacy(struct fb_cmap *cmap, struct fb_info *info)
    ret = crtc->funcs->gamma_set(crtc, r, g, b,
    crtc->gamma_size, NULL);
    if (ret)
    - return ret;
    + goto out;
    }
    +out:
    drm_modeset_unlock_all(fb_helper->dev);

    return ret;
    --
    2.27.0


    \
     
     \ /
      Last update: 2021-03-01 23:08    [W:5.161 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site