2006-10-06 05:36:10

by Amol Lad

[permalink] [raw]
Subject: [PATCH 7/9] sound/pci/rme9652/hdspm.c: ioremap balanced with iounmap

Signed-off-by: Amol Lad <[email protected]>
---
hdspm.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletion(-)
---
diff -uprN -X linux-2.6.19-rc1-orig/Documentation/dontdiff linux-2.6.19-rc1-orig/sound/pci/rme9652/hdspm.c linux-2.6.19-rc1/sound/pci/rme9652/hdspm.c
--- linux-2.6.19-rc1-orig/sound/pci/rme9652/hdspm.c 2006-09-21 10:15:53.000000000 +0530
+++ linux-2.6.19-rc1/sound/pci/rme9652/hdspm.c 2006-10-05 16:55:32.000000000 +0530
@@ -3500,6 +3500,7 @@ static int __devinit snd_hdspm_create(st
IRQF_DISABLED | IRQF_SHARED, "hdspm",
(void *) hdspm)) {
snd_printk(KERN_ERR "HDSPM: unable to use IRQ %d\n", pci->irq);
+ iounmap(hdspm->iobase);
return -EBUSY;
}

@@ -3516,6 +3517,7 @@ static int __devinit snd_hdspm_create(st
== NULL) {
snd_printk(KERN_ERR "HDSPM: unable to kmalloc Mixer memory of %d Bytes\n",
(int)sizeof(struct hdspm_mixer));
+ iounmap(hdspm->iobase);
return err;
}

@@ -3524,8 +3526,10 @@ static int __devinit snd_hdspm_create(st
hdspm->qs_channels = MADI_QS_CHANNELS;

snd_printdd("create alsa devices.\n");
- if ((err = snd_hdspm_create_alsa_devices(card, hdspm)) < 0)
+ if ((err = snd_hdspm_create_alsa_devices(card, hdspm)) < 0) {
+ iounmap(hdspm->iobase);
return err;
+ }

snd_hdspm_initialize_midi_flush(hdspm);




2006-10-06 14:40:37

by Takashi Iwai

[permalink] [raw]
Subject: Re: [PATCH 7/9] sound/pci/rme9652/hdspm.c: ioremap balanced with iounmap

At Fri, 06 Oct 2006 11:08:56 +0530,
Amol Lad wrote:
>
> Signed-off-by: Amol Lad <[email protected]>

This is wrong.

iounmap is called in snd_hdspm_free(), which is called when an error
is returned from any of probe part.


Takashi


> ---
> hdspm.c | 6 +++++-
> 1 files changed, 5 insertions(+), 1 deletion(-)
> ---
> diff -uprN -X linux-2.6.19-rc1-orig/Documentation/dontdiff linux-2.6.19-rc1-orig/sound/pci/rme9652/hdspm.c linux-2.6.19-rc1/sound/pci/rme9652/hdspm.c
> --- linux-2.6.19-rc1-orig/sound/pci/rme9652/hdspm.c 2006-09-21 10:15:53.000000000 +0530
> +++ linux-2.6.19-rc1/sound/pci/rme9652/hdspm.c 2006-10-05 16:55:32.000000000 +0530
> @@ -3500,6 +3500,7 @@ static int __devinit snd_hdspm_create(st
> IRQF_DISABLED | IRQF_SHARED, "hdspm",
> (void *) hdspm)) {
> snd_printk(KERN_ERR "HDSPM: unable to use IRQ %d\n", pci->irq);
> + iounmap(hdspm->iobase);
> return -EBUSY;
> }
>
> @@ -3516,6 +3517,7 @@ static int __devinit snd_hdspm_create(st
> == NULL) {
> snd_printk(KERN_ERR "HDSPM: unable to kmalloc Mixer memory of %d Bytes\n",
> (int)sizeof(struct hdspm_mixer));
> + iounmap(hdspm->iobase);
> return err;
> }
>
> @@ -3524,8 +3526,10 @@ static int __devinit snd_hdspm_create(st
> hdspm->qs_channels = MADI_QS_CHANNELS;
>
> snd_printdd("create alsa devices.\n");
> - if ((err = snd_hdspm_create_alsa_devices(card, hdspm)) < 0)
> + if ((err = snd_hdspm_create_alsa_devices(card, hdspm)) < 0) {
> + iounmap(hdspm->iobase);
> return err;
> + }
>
> snd_hdspm_initialize_midi_flush(hdspm);
>
>
>
> -
> 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/
>