From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755019Ab2DSLs3 (ORCPT ); Thu, 19 Apr 2012 07:48:29 -0400 Received: from cantor2.suse.de ([195.135.220.15]:58548 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751065Ab2DSLs1 (ORCPT ); Thu, 19 Apr 2012 07:48:27 -0400 Date: Thu, 19 Apr 2012 13:48:24 +0200 Message-ID: From: Takashi Iwai To: Julia Lawall Cc: Jaroslav Kysela , kernel-janitors@vger.kernel.org, alsa-devel@alsa-project.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] sound/isa/sc6000.c: add missing sc6000_setup_board In-Reply-To: <1334817640-15426-1-git-send-email-Julia.Lawall@lip6.fr> References: <1334817640-15426-1-git-send-email-Julia.Lawall@lip6.fr> User-Agent: Wanderlust/2.15.6 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.7 Emacs/23.3 (x86_64-suse-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org At Thu, 19 Apr 2012 08:40:40 +0200, Julia Lawall wrote: > > From: Julia Lawall > > There seems to be no interaction between *port and the requested region, so > the clearing of *vport should take place if the request_region fails. > > Signed-off-by: Julia Lawall > > --- > Not tested. sc6000_setup_board seems rather complicated, so my reasoning > could be completely wrong. This setup is called first at sc6000_init_board(), which is called much later than these error paths. So, I don't think the need to call sc6000_setup_board(*vport, 0) at err_unmap1. thanks, Takashi > > sound/isa/sc6000.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/sound/isa/sc6000.c b/sound/isa/sc6000.c > index d97d0f3..57679cb 100644 > --- a/sound/isa/sc6000.c > +++ b/sound/isa/sc6000.c > @@ -594,7 +594,7 @@ static int __devinit snd_sc6000_probe(struct device *devptr, unsigned int dev) > snd_printk(KERN_ERR PFX > "I/O port cannot be iomaped.\n"); > err = -EBUSY; > - goto err_unmap1; > + goto err_unmap0; > } > > /* to make it marked as used */ > @@ -678,9 +678,10 @@ static int __devinit snd_sc6000_probe(struct device *devptr, unsigned int dev) > return 0; > > err_unmap2: > - sc6000_setup_board(*vport, 0); > release_region(mss_port[dev], 4); > err_unmap1: > + sc6000_setup_board(*vport, 0); > +err_unmap0: > release_region(port[dev], 0x10); > err_exit: > snd_card_free(card); >