]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/staging/tm6000/tm6000-alsa.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
[net-next-2.6.git] / drivers / staging / tm6000 / tm6000-alsa.c
index e379e3ec444295a2153fa0821d2925b5522b836e..184cc505ed86c86370e24e0328e12fd253c10d54 100644 (file)
@@ -456,7 +456,7 @@ int tm6000_audio_init(struct tm6000_core *dev)
 
        rc = snd_pcm_new(card, "TM6000 Audio", 0, 0, 1, &pcm);
        if (rc < 0)
-               goto error;
+               goto error_chip;
 
        pcm->info_flags = 0;
        pcm->private_data = chip;
@@ -467,12 +467,15 @@ int tm6000_audio_init(struct tm6000_core *dev)
        INIT_WORK(&dev->wq_trigger, audio_trigger);
        rc = snd_card_register(card);
        if (rc < 0)
-               goto error;
+               goto error_chip;
 
        dprintk(1,"Registered audio driver for %s\n", card->longname);
 
        return 0;
 
+error_chip:
+       kfree(chip);
+       dev->adev = NULL;
 error:
        snd_card_free(card);
        return rc;