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);
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/
>