diff options
author | Takashi Iwai <tiwai@suse.de> | 2009-03-23 19:35:35 -0400 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-03-23 19:35:35 -0400 |
commit | dec14f8c0eff54549e5747f8a4d1dc6c0347e2dd (patch) | |
tree | af1744c17c4bacad4c9524ad096d5a65f6c25c73 /sound/pcmcia/pdaudiocf/pdaudiocf.c | |
parent | 8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84 (diff) | |
parent | b1a0aac05f044e78a589bfd7a9e2334aa640eb45 (diff) |
Merge branch 'topic/snd_card_new-err' into for-linus
Diffstat (limited to 'sound/pcmcia/pdaudiocf/pdaudiocf.c')
-rw-r--r-- | sound/pcmcia/pdaudiocf/pdaudiocf.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/sound/pcmcia/pdaudiocf/pdaudiocf.c b/sound/pcmcia/pdaudiocf/pdaudiocf.c index 819aaaac432f..7dea74b71cf1 100644 --- a/sound/pcmcia/pdaudiocf/pdaudiocf.c +++ b/sound/pcmcia/pdaudiocf/pdaudiocf.c | |||
@@ -91,7 +91,7 @@ static int snd_pdacf_dev_free(struct snd_device *device) | |||
91 | */ | 91 | */ |
92 | static int snd_pdacf_probe(struct pcmcia_device *link) | 92 | static int snd_pdacf_probe(struct pcmcia_device *link) |
93 | { | 93 | { |
94 | int i; | 94 | int i, err; |
95 | struct snd_pdacf *pdacf; | 95 | struct snd_pdacf *pdacf; |
96 | struct snd_card *card; | 96 | struct snd_card *card; |
97 | static struct snd_device_ops ops = { | 97 | static struct snd_device_ops ops = { |
@@ -112,20 +112,23 @@ static int snd_pdacf_probe(struct pcmcia_device *link) | |||
112 | return -ENODEV; /* disabled explicitly */ | 112 | return -ENODEV; /* disabled explicitly */ |
113 | 113 | ||
114 | /* ok, create a card instance */ | 114 | /* ok, create a card instance */ |
115 | card = snd_card_new(index[i], id[i], THIS_MODULE, 0); | 115 | err = snd_card_create(index[i], id[i], THIS_MODULE, 0, &card); |
116 | if (card == NULL) { | 116 | if (err < 0) { |
117 | snd_printk(KERN_ERR "pdacf: cannot create a card instance\n"); | 117 | snd_printk(KERN_ERR "pdacf: cannot create a card instance\n"); |
118 | return -ENOMEM; | 118 | return err; |
119 | } | 119 | } |
120 | 120 | ||
121 | pdacf = snd_pdacf_create(card); | 121 | pdacf = snd_pdacf_create(card); |
122 | if (! pdacf) | 122 | if (!pdacf) { |
123 | return -EIO; | 123 | snd_card_free(card); |
124 | return -ENOMEM; | ||
125 | } | ||
124 | 126 | ||
125 | if (snd_device_new(card, SNDRV_DEV_LOWLEVEL, pdacf, &ops) < 0) { | 127 | err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, pdacf, &ops); |
128 | if (err < 0) { | ||
126 | kfree(pdacf); | 129 | kfree(pdacf); |
127 | snd_card_free(card); | 130 | snd_card_free(card); |
128 | return -ENODEV; | 131 | return err; |
129 | } | 132 | } |
130 | 133 | ||
131 | snd_card_set_dev(card, &handle_to_dev(link)); | 134 | snd_card_set_dev(card, &handle_to_dev(link)); |