From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756100AbdARLnf (ORCPT ); Wed, 18 Jan 2017 06:43:35 -0500 Received: from mail-pf0-f193.google.com ([209.85.192.193]:33847 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753819AbdARLnb (ORCPT ); Wed, 18 Jan 2017 06:43:31 -0500 Message-ID: <1484739333.4635.3.camel@gmail.com> Subject: Re: [Intel-gfx] [PATCH] drm/i915: Avoid drm_atomic_state_put(NULL) in intel_display_resume From: Ander Conselvan De Oliveira To: Chris Wilson , linux-kernel@vger.kernel.org Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, "# v4 . 10-rc1+" , Stefan Seyfried Date: Wed, 18 Jan 2017 13:35:33 +0200 In-Reply-To: <20170115125825.18597-1-chris@chris-wilson.co.uk> References: <20170115125825.18597-1-chris@chris-wilson.co.uk> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.18.5.2 (3.18.5.2-1.fc23) Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, 2017-01-15 at 12:58 +0000, Chris Wilson wrote: > intel_display_resume() may be called without a atomic state to restore, > i.e. dev_priv->modeset_reset_restore state is NULL. One such case is > following a lid open/close event and the forced modeset in > intel_lid_notiy(). > > Reported-by: Stefan Seyfried > Fixes: 0853695c3ba4 ("drm: Add reference counting to drm_atomic_state") > Signed-off-by: Chris Wilson > Cc: Daniel Vetter > Cc: Jani Nikula > Cc: # v4.10-rc1+ > --- >  drivers/gpu/drm/i915/intel_display.c | 3 ++- >  1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/i915/intel_display.c > b/drivers/gpu/drm/i915/intel_display.c > index 3dc8724df400..260bbe8881e6 100644 > --- a/drivers/gpu/drm/i915/intel_display.c > +++ b/drivers/gpu/drm/i915/intel_display.c > @@ -17024,7 +17024,8 @@ void intel_display_resume(struct drm_device *dev) >   >   if (ret) >   DRM_ERROR("Restoring old state failed with %i\n", ret); > - drm_atomic_state_put(state); > + if (state) > + drm_atomic_state_put(state); >  } >   >  void intel_modeset_gem_init(struct drm_device *dev) Reviewed-by: Ander Conselvan de Oliveira