ALSA: hdspm: Use common error handling code in snd_hdspm_probe()
authorMarkus Elfring <elfring@users.sourceforge.net>
Tue, 5 Sep 2017 20:22:21 +0000 (22:22 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 7 Sep 2017 08:26:19 +0000 (10:26 +0200)
Add a jump target so that a bit of exception handling can be better reused
at the end of this function.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/rme9652/hdspm.c

index 25284d8d97588ca63f43094fe1b29c2cdb8cc3e8..f20d42714e4db0378b9400247870585f8f9fb270 100644 (file)
@@ -6949,10 +6949,8 @@ static int snd_hdspm_probe(struct pci_dev *pci,
        hdspm->pci = pci;
 
        err = snd_hdspm_create(card, hdspm);
-       if (err < 0) {
-               snd_card_free(card);
-               return err;
-       }
+       if (err < 0)
+               goto free_card;
 
        if (hdspm->io_type != MADIface) {
                snprintf(card->shortname, sizeof(card->shortname), "%s_%x",
@@ -6970,15 +6968,17 @@ static int snd_hdspm_probe(struct pci_dev *pci,
        }
 
        err = snd_card_register(card);
-       if (err < 0) {
-               snd_card_free(card);
-               return err;
-       }
+       if (err < 0)
+               goto free_card;
 
        pci_set_drvdata(pci, card);
 
        dev++;
        return 0;
+
+free_card:
+       snd_card_free(card);
+       return err;
 }
 
 static void snd_hdspm_remove(struct pci_dev *pci)