lkml.org 
[lkml]   [2017]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.10 62/81] drm/vc4: Allocate the right amount of space for boot-time CRTC state.
    Date
    4.10-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Eric Anholt <eric@anholt.net>

    commit 6d6e500391875cc372336c88e9a8af377be19c36 upstream.

    Without this, the first modeset would dereference past the allocation
    when trying to free the mm node.

    Signed-off-by: Eric Anholt <eric@anholt.net>
    Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170328201343.4884-1-eric@anholt.net
    Fixes: d8dbf44f13b9 ("drm/vc4: Make the CRTCs cooperate on allocating display lists.")
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/gpu/drm/vc4/vc4_crtc.c | 13 ++++++++++++-
    1 file changed, 12 insertions(+), 1 deletion(-)

    --- a/drivers/gpu/drm/vc4/vc4_crtc.c
    +++ b/drivers/gpu/drm/vc4/vc4_crtc.c
    @@ -842,6 +842,17 @@ static void vc4_crtc_destroy_state(struc
    drm_atomic_helper_crtc_destroy_state(crtc, state);
    }

    +static void
    +vc4_crtc_reset(struct drm_crtc *crtc)
    +{
    + if (crtc->state)
    + __drm_atomic_helper_crtc_destroy_state(crtc->state);
    +
    + crtc->state = kzalloc(sizeof(struct vc4_crtc_state), GFP_KERNEL);
    + if (crtc->state)
    + crtc->state->crtc = crtc;
    +}
    +
    static const struct drm_crtc_funcs vc4_crtc_funcs = {
    .set_config = drm_atomic_helper_set_config,
    .destroy = vc4_crtc_destroy,
    @@ -849,7 +860,7 @@ static const struct drm_crtc_funcs vc4_c
    .set_property = NULL,
    .cursor_set = NULL, /* handled by drm_mode_cursor_universal */
    .cursor_move = NULL, /* handled by drm_mode_cursor_universal */
    - .reset = drm_atomic_helper_crtc_reset,
    + .reset = vc4_crtc_reset,
    .atomic_duplicate_state = vc4_crtc_duplicate_state,
    .atomic_destroy_state = vc4_crtc_destroy_state,
    .gamma_set = vc4_crtc_gamma_set,

    \
     
     \ /
      Last update: 2017-04-06 10:47    [W:4.137 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site