From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcin Slusarz Subject: Re: [PATCH] drm/nouveau: cleanup after display init failure Date: Thu, 22 Dec 2011 17:55:22 +0100 Message-ID: <20111222165522.GC6111@joi.lan> References: <20111211200205.GA12385@joi.lan> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <20111211200205.GA12385-OI9uyE9O0yo@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: nouveau-bounces+gcfxn-nouveau=m.gmane.org-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Errors-To: nouveau-bounces+gcfxn-nouveau=m.gmane.org-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org To: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org On Sun, Dec 11, 2011 at 09:02:05PM +0100, Marcin Slusarz wrote: > Depending on exact point of failure, not cleaning would lead to > BUG_ONs/oopses in various distant places. > > Signed-off-by: Marcin Slusarz > --- > drivers/gpu/drm/nouveau/nouveau_display.c | 11 +++++++++-- > 1 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c > index 05f1692..bea7a41 100644 > --- a/drivers/gpu/drm/nouveau/nouveau_display.c > +++ b/drivers/gpu/drm/nouveau/nouveau_display.c > @@ -304,14 +304,21 @@ nouveau_display_create(struct drm_device *dev) > > ret = disp->create(dev); > if (ret) > - return ret; > + goto disp_create_err; > > if (dev->mode_config.num_crtc) { > ret = drm_vblank_init(dev, dev->mode_config.num_crtc); > if (ret) > - return ret; > + goto vblank_err; > } > > + return 0; > + > +vblank_err: > + disp->destroy(dev); > +disp_create_err: > + drm_kms_helper_poll_fini(dev); > + drm_mode_config_cleanup(dev); > return ret; > } > > -- ping