[alsa-devel] [PATCH] sound/isa/sc6000.c: add missing sc6000_setup_board

Takashi Iwai tiwai at suse.de
Thu Apr 19 14:29:37 CEST 2012


At Thu, 19 Apr 2012 14:21:59 +0200 (CEST),
Julia Lawall wrote:
> 
> On Thu, 19 Apr 2012, Takashi Iwai wrote:
> 
> > At Thu, 19 Apr 2012 08:40:40 +0200,
> > Julia Lawall wrote:
> >>
> >> From: Julia Lawall <Julia.Lawall at lip6.fr>
> >>
> >> 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 <Julia.Lawall at lip6.fr>
> >>
> >> ---
> >> 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 for the feedback.  I guess then it is not needed on the failure 
> of devm_ioport_map either.  Is it needed on the failure of 
> sc6000_init_board?  That can fail either before or after the calls to 
> sc6000_setup_board hav taken place.

Some error paths in sc6000_init_board() don't look necessary to call
sc6000_setup_board(0), indeed.  But it's not too critical to call
sc6000_setup_board() at that timinig (there should be no hang), so I
don't think we need to change it unless it hits any real problem.


thanks,

Takashi


> 
> thanks,
> julia
> 
> 
> 
> >
> >
> > 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);
> >>
> > --
> > To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> > the body of a message to majordomo at vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >
> 


More information about the Alsa-devel mailing list