From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752884AbbKPWfi (ORCPT ); Mon, 16 Nov 2015 17:35:38 -0500 Received: from mail.kmu-office.ch ([178.209.48.109]:45725 "EHLO mail.kmu-office.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751905AbbKPWfe (ORCPT ); Mon, 16 Nov 2015 17:35:34 -0500 MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Date: Mon, 16 Nov 2015 14:34:11 -0800 From: Stefan Agner To: airlied@linux.ie Cc: dri-devel@lists.freedesktop.org, "Jianwei Wang " , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH] drm/fsl-dcu: Fix no fb check bug In-Reply-To: <1440992397-40533-1-git-send-email-jianwei.wang.chn@gmail.com> References: <1440992397-40533-1-git-send-email-jianwei.wang.chn@gmail.com> Message-ID: User-Agent: Roundcube Webmail/1.1.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, This avoids a NULL pointer dereference when no crtc is available (e.g. the fsl,panel not assigned). Any chance to get this into 4.4? Tested-by: Stefan Agner -- Stefan On 2015-08-30 20:39, Jianwei Wang wrote: > For state->fb may be NULL in fsl_dcu_drm_plane_atomic_check function, > if so, return -EINVAL. No need check in fsl_dcu_drm_plane_atomic_update > anymore. > > Signed-off-by: Jianwei Wang > --- > drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c > b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c > index 82be6b8..8787920 100644 > --- a/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c > +++ b/drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c > @@ -41,6 +41,9 @@ static int fsl_dcu_drm_plane_atomic_check(struct > drm_plane *plane, > { > struct drm_framebuffer *fb = state->fb; > > + if (!fb) > + return -EINVAL; > + > switch (fb->pixel_format) { > case DRM_FORMAT_RGB565: > case DRM_FORMAT_RGB888: > @@ -84,9 +87,6 @@ static void fsl_dcu_drm_plane_atomic_update(struct > drm_plane *plane, > unsigned int alpha, bpp; > int index, ret; > > - if (!fb) > - return; > - > index = fsl_dcu_drm_plane_index(plane); > if (index < 0) > return;