On Mon, Jun 18, 2018 at 12:32:29PM +1000, Dave Airlie wrote: > From: Dave Airlie <airlied@xxxxxxxxxx> > > Fixes: 9428088c (drm/qxl: reapply cursor after resetting primary) > Reported-by: Mike Galbraith <efault@xxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Dave Airlie <airlied@xxxxxxxxxx> Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > --- > drivers/gpu/drm/qxl/qxl_display.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c > index b8cda9449241..768207fbbae3 100644 > --- a/drivers/gpu/drm/qxl/qxl_display.c > +++ b/drivers/gpu/drm/qxl/qxl_display.c > @@ -623,7 +623,7 @@ static void qxl_cursor_atomic_update(struct drm_plane *plane, > struct qxl_cursor_cmd *cmd; > struct qxl_cursor *cursor; > struct drm_gem_object *obj; > - struct qxl_bo *cursor_bo = NULL, *user_bo = NULL; > + struct qxl_bo *cursor_bo = NULL, *user_bo = NULL, *old_cursor_bo = NULL; > int ret; > void *user_ptr; > int size = 64*64*4; > @@ -677,7 +677,7 @@ static void qxl_cursor_atomic_update(struct drm_plane *plane, > cursor_bo, 0); > cmd->type = QXL_CURSOR_SET; > > - qxl_bo_unref(&qcrtc->cursor_bo); > + old_cursor_bo = qcrtc->cursor_bo; > qcrtc->cursor_bo = cursor_bo; > cursor_bo = NULL; > } else { > @@ -697,6 +697,9 @@ static void qxl_cursor_atomic_update(struct drm_plane *plane, > qxl_push_cursor_ring_release(qdev, release, QXL_CMD_CURSOR, false); > qxl_release_fence_buffer_objects(release); > > + if (old_cursor_bo) > + qxl_bo_unref(&old_cursor_bo); > + > qxl_bo_unref(&cursor_bo); > > return; > -- > 2.17.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel