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

From: Julia Lawall
Date: Thu Apr 19 2012 - 08:22:13 EST


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.

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/