From mboxrd@z Thu Jan 1 00:00:00 1970 From: Helen Koike Subject: Re: [PATCH v5] drm/vc4: fix fb references in async update Date: Mon, 10 Jun 2019 10:38:34 -0300 Message-ID: <5ff06a37-3bc7-c76d-e0c0-4d328b8cfedc@collabora.com> References: <156007492924468@kroah.com> <20190610131859.7616-1-helen.koike@collabora.com> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20190610131859.7616-1-helen.koike@collabora.com> Content-Language: en-US Sender: stable-owner@vger.kernel.org To: stable@vger.kernel.org Cc: dri-devel@lists.freedesktop.org, kernel@collabora.com, gregkh@linuxfoundation.org List-Id: dri-devel@lists.freedesktop.org On 6/10/19 10:18 AM, Helen Koike wrote: > commit c16b85559dcfb5a348cc085a7b4c75ed49b05e2c upstream. > > Async update callbacks are expected to set the old_fb in the new_state > so prepare/cleanup framebuffers are balanced. > > Calling drm_atomic_set_fb_for_plane() (which gets a reference of the new > fb and put the old fb) is not required, as it's taken care by > drm_mode_cursor_universal() when calling drm_atomic_helper_update_plane(). > > Cc: # v4.19+ > Fixes: 539c320bfa97 ("drm/vc4: update cursors asynchronously through atomic") > Suggested-by: Boris Brezillon > Signed-off-by: Helen Koike > Reviewed-by: Boris Brezillon > Signed-off-by: Boris Brezillon > Link: https://patchwork.freedesktop.org/patch/msgid/20190603165610.24614-5-helen.koike@collabora.com > --- > > Hi, > > This patch failed to apply on kernel stable v4.19, I'm re-sending it > fixing the conflict. fyi, this patch was already applied in other stable branches. Thanks Helen > > Thanks > Helen > > drivers/gpu/drm/vc4/vc4_plane.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/vc4/vc4_plane.c b/drivers/gpu/drm/vc4/vc4_plane.c > index ab39315c9078..39e608271263 100644 > --- a/drivers/gpu/drm/vc4/vc4_plane.c > +++ b/drivers/gpu/drm/vc4/vc4_plane.c > @@ -818,6 +818,7 @@ static void vc4_plane_atomic_async_update(struct drm_plane *plane, > drm_atomic_set_fb_for_plane(plane->state, state->fb); > } > > + swap(plane->state->fb, state->fb); > /* Set the cursor's position on the screen. This is the > * expected change from the drm_mode_cursor_universal() > * helper. >