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

Reply via email to