]> pilppa.com Git - linux-2.6-omap-h63xx.git/commitdiff
ALSA: azx_probe() cleanup
authorWu Fengguang <wfg@linux.intel.com>
Thu, 20 Nov 2008 01:24:52 +0000 (09:24 +0800)
committerTakashi Iwai <tiwai@suse.de>
Thu, 20 Nov 2008 07:17:15 +0000 (08:17 +0100)
Replace 5 free-and-return-err blocks with goto-out-free ones.
This makes the main logic more outstanding.

Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_intel.c

index f73c13fdd40903d2e2707f64a5baa520c6f5b262..3870ad622da6d6cd98083a73d3308b65ba9e05e3 100644 (file)
@@ -2317,40 +2317,30 @@ static int __devinit azx_probe(struct pci_dev *pci,
        }
 
        err = azx_create(card, pci, dev, pci_id->driver_data, &chip);
-       if (err < 0) {
-               snd_card_free(card);
-               return err;
-       }
+       if (err < 0)
+               goto out_free;
        card->private_data = chip;
 
        /* create codec instances */
        err = azx_codec_create(chip, model[dev], probe_mask[dev]);
-       if (err < 0) {
-               snd_card_free(card);
-               return err;
-       }
+       if (err < 0)
+               goto out_free;
 
        /* create PCM streams */
        err = snd_hda_build_pcms(chip->bus);
-       if (err < 0) {
-               snd_card_free(card);
-               return err;
-       }
+       if (err < 0)
+               goto out_free;
 
        /* create mixer controls */
        err = azx_mixer_create(chip);
-       if (err < 0) {
-               snd_card_free(card);
-               return err;
-       }
+       if (err < 0)
+               goto out_free;
 
        snd_card_set_dev(card, &pci->dev);
 
        err = snd_card_register(card);
-       if (err < 0) {
-               snd_card_free(card);
-               return err;
-       }
+       if (err < 0)
+               goto out_free;
 
        pci_set_drvdata(pci, card);
        chip->running = 1;
@@ -2359,6 +2349,9 @@ static int __devinit azx_probe(struct pci_dev *pci,
 
        dev++;
        return err;
+out_free:
+       snd_card_free(card);
+       return err;
 }
 
 static void __devexit azx_remove(struct pci_dev *pci)