lkml.org 
[lkml]   [2021]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 143/207] drm/vc4: kms: Dont duplicate pending commit
    Date
    From: Maxime Ripard <maxime@cerno.tech>

    commit d354699e2292c60f25496d3c31ce4e7b1563b899 upstream.

    Our HVS global state, when duplicated, will also copy the pointer to the
    drm_crtc_commit (and increase the reference count) for each FIFO if the
    pointer is not NULL.

    However, our atomic_setup function will overwrite that pointer without
    putting the reference back leading to a memory leak.

    Since the commit is only relevant during the atomic commit process, it
    doesn't make sense to duplicate the reference to the commit anyway.
    Let's remove it.

    Fixes: 9ec03d7f1ed3 ("drm/vc4: kms: Wait on previous FIFO users before a commit")
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
    Tested-by: Jian-Hong Pan <jhp@endlessos.org>
    Link: https://lore.kernel.org/r/20211117094527.146275-6-maxime@cerno.tech
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/gpu/drm/vc4/vc4_kms.c | 6 ------
    1 file changed, 6 deletions(-)

    --- a/drivers/gpu/drm/vc4/vc4_kms.c
    +++ b/drivers/gpu/drm/vc4/vc4_kms.c
    @@ -676,12 +676,6 @@ vc4_hvs_channels_duplicate_state(struct

    for (i = 0; i < HVS_NUM_CHANNELS; i++) {
    state->fifo_state[i].in_use = old_state->fifo_state[i].in_use;
    -
    - if (!old_state->fifo_state[i].pending_commit)
    - continue;
    -
    - state->fifo_state[i].pending_commit =
    - drm_crtc_commit_get(old_state->fifo_state[i].pending_commit);
    }

    return &state->base;

    \
     
     \ /
      Last update: 2021-12-06 17:11    [W:2.250 / U:0.152 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site