|
@@ -3295,20 +3295,23 @@ static int snd_cmipci_probe(struct pci_dev *pci,
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- if ((err = snd_cmipci_create(card, pci, dev, &cm)) < 0) {
|
|
|
- snd_card_free(card);
|
|
|
- return err;
|
|
|
- }
|
|
|
+ err = snd_cmipci_create(card, pci, dev, &cm);
|
|
|
+ if (err < 0)
|
|
|
+ goto free_card;
|
|
|
+
|
|
|
card->private_data = cm;
|
|
|
|
|
|
- if ((err = snd_card_register(card)) < 0) {
|
|
|
- snd_card_free(card);
|
|
|
- return err;
|
|
|
- }
|
|
|
+ err = snd_card_register(card);
|
|
|
+ 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_cmipci_remove(struct pci_dev *pci)
|