Re: [PATCH] sound/isa/sc6000.c: add missing sc6000_setup_board

From: Takashi Iwai
Date: Thu Apr 19 2012 - 08:29:35 EST


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@xxxxxxx>
> >>
> >> 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@xxxxxxx>
> >>
> >> ---
> >> 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@xxxxxxxxxxxxxxx
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/