Re: [PATCH 2/3] sound/pci ioremap/iounmap balancing

Takashi Iwai
2007-08-01T10:38:16Z

At Wed, 01 Aug 2007 02:02:56 -0400,
Scott Thompson wrote:
>
> ioremap / iounmap balancing in sound/pci tree
>
> Signed-off-by: Scott Thompson <postfail <at> hushmail.com>
> ---
> diff --git a/sound/pci/mixart/mixart.c b/sound/pci/mixart/mixart.c
> index ac007ce..871b09f 100644
> --- a/sound/pci/mixart/mixart.c
> +++ b/sound/pci/mixart/mixart.c
> @@ -1319,6 +1319,13 @@ static int __devinit snd_mixart_probe(struct
> pci_dev *pci,
> pci_resource_len(pci, i));
> }
>
> + if (!mgr->mem[0].virt || !mgr->mem[1].virt){
> + printk(KERN_ERR "unable to remap resource 0x%lx and/or 0x%lx\n",
> + mgr->mem[0].phys, mgr->mem[1].phys);
> + snd_mixart_free(mgr);
> + return -EBUSY;
> + }
> +
> if (request_irq(pci->irq, snd_mixart_interrupt, IRQF_SHARED,
> CARD_NAME, mgr)) {
> snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);

This would be rater a lacking check of returned errors.

The other changes look incorrect. All these drivers use
card->private_free callback to release the resources even for the
error exit. Thus, you don't need iounmap in each place.

thanks,

Takashi