[ALSA] opl3 - Fix the unreleased resources
authorTakashi Iwai <tiwai@suse.de>
Tue, 3 Jan 2006 18:56:55 +0000 (19:56 +0100)
committerJaroslav Kysela <perex@suse.cz>
Wed, 4 Jan 2006 09:13:52 +0000 (10:13 +0100)
Modules: OPL3

Fix the unreleased resources in the error path of snd_opl3_create().

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/drivers/opl3/opl3_lib.c

index 650f3b8..1e0c76b 100644 (file)
@@ -409,13 +409,13 @@ int snd_opl3_create(struct snd_card *card,
        if (! integrated) {
                if ((opl3->res_l_port = request_region(l_port, 2, "OPL2/3 (left)")) == NULL) {
                        snd_printk(KERN_ERR "opl3: can't grab left port 0x%lx\n", l_port);
-                       snd_opl3_free(opl3);
+                       snd_device_free(card, opl3);
                        return -EBUSY;
                }
                if (r_port != 0 &&
                    (opl3->res_r_port = request_region(r_port, 2, "OPL2/3 (right)")) == NULL) {
                        snd_printk(KERN_ERR "opl3: can't grab right port 0x%lx\n", r_port);
-                       snd_opl3_free(opl3);
+                       snd_device_free(card, opl3);
                        return -EBUSY;
                }
        }
@@ -434,7 +434,7 @@ int snd_opl3_create(struct snd_card *card,
                if ((err = snd_opl3_detect(opl3)) < 0) {
                        snd_printd("OPL2/3 chip not detected at 0x%lx/0x%lx\n",
                                   opl3->l_port, opl3->r_port);
-                       snd_opl3_free(opl3);
+                       snd_device_free(card, opl3);
                        return err;
                }
                /* detect routine returns correct hardware type */