diff options
author | Rene Herman <rene.herman@keyaccess.nl> | 2006-04-11 08:08:33 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-04-12 05:55:30 -0400 |
commit | d0ac642d76c79c5cc673c4cdfe43e926379784e1 (patch) | |
tree | 676e529b860634706ff98978d0328a71e584bc4f | |
parent | 12831c15f35dcc9f55fa63d50fd4892c7c6a0a1c (diff) |
[ALSA] continue on IS_ERR from platform device registration
Continue with the next one on error from device registration.
This would seem the correct thing to do, even if it's not the probe()
error that we're getting.
Signed-off-by: Rene Herman <rene.herman@keyaccess.nl>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | sound/isa/ad1848/ad1848.c | 14 | ||||
-rw-r--r-- | sound/isa/cmi8330.c | 14 | ||||
-rw-r--r-- | sound/isa/cs423x/cs4231.c | 14 | ||||
-rw-r--r-- | sound/isa/cs423x/cs4236.c | 14 | ||||
-rw-r--r-- | sound/isa/es1688/es1688.c | 14 | ||||
-rw-r--r-- | sound/isa/es18xx.c | 14 | ||||
-rw-r--r-- | sound/isa/gus/gusclassic.c | 14 | ||||
-rw-r--r-- | sound/isa/gus/gusextreme.c | 14 | ||||
-rw-r--r-- | sound/isa/gus/gusmax.c | 14 | ||||
-rw-r--r-- | sound/isa/gus/interwave.c | 14 | ||||
-rw-r--r-- | sound/isa/opl3sa2.c | 14 | ||||
-rw-r--r-- | sound/isa/sb/sb16.c | 14 | ||||
-rw-r--r-- | sound/isa/sb/sb8.c | 14 | ||||
-rw-r--r-- | sound/isa/sgalaxy.c | 14 | ||||
-rw-r--r-- | sound/isa/sscape.c | 14 | ||||
-rw-r--r-- | sound/isa/wavefront/wavefront.c | 14 |
16 files changed, 64 insertions, 160 deletions
diff --git a/sound/isa/ad1848/ad1848.c b/sound/isa/ad1848/ad1848.c index 326a057f752..1f460eb402a 100644 --- a/sound/isa/ad1848/ad1848.c +++ b/sound/isa/ad1848/ad1848.c | |||
@@ -193,10 +193,8 @@ static int __init alsa_card_ad1848_init(void) | |||
193 | continue; | 193 | continue; |
194 | device = platform_device_register_simple(SND_AD1848_DRIVER, | 194 | device = platform_device_register_simple(SND_AD1848_DRIVER, |
195 | i, NULL, 0); | 195 | i, NULL, 0); |
196 | if (IS_ERR(device)) { | 196 | if (IS_ERR(device)) |
197 | err = PTR_ERR(device); | 197 | continue; |
198 | goto errout; | ||
199 | } | ||
200 | devices[i] = device; | 198 | devices[i] = device; |
201 | cards++; | 199 | cards++; |
202 | } | 200 | } |
@@ -204,14 +202,10 @@ static int __init alsa_card_ad1848_init(void) | |||
204 | #ifdef MODULE | 202 | #ifdef MODULE |
205 | printk(KERN_ERR "AD1848 soundcard not found or device busy\n"); | 203 | printk(KERN_ERR "AD1848 soundcard not found or device busy\n"); |
206 | #endif | 204 | #endif |
207 | err = -ENODEV; | 205 | snd_ad1848_unregister_all(); |
208 | goto errout; | 206 | return -ENODEV; |
209 | } | 207 | } |
210 | return 0; | 208 | return 0; |
211 | |||
212 | errout: | ||
213 | snd_ad1848_unregister_all(); | ||
214 | return err; | ||
215 | } | 209 | } |
216 | 210 | ||
217 | static void __exit alsa_card_ad1848_exit(void) | 211 | static void __exit alsa_card_ad1848_exit(void) |
diff --git a/sound/isa/cmi8330.c b/sound/isa/cmi8330.c index bc0f5ebf5d3..35780b811d1 100644 --- a/sound/isa/cmi8330.c +++ b/sound/isa/cmi8330.c | |||
@@ -699,10 +699,8 @@ static int __init alsa_card_cmi8330_init(void) | |||
699 | continue; | 699 | continue; |
700 | device = platform_device_register_simple(CMI8330_DRIVER, | 700 | device = platform_device_register_simple(CMI8330_DRIVER, |
701 | i, NULL, 0); | 701 | i, NULL, 0); |
702 | if (IS_ERR(device)) { | 702 | if (IS_ERR(device)) |
703 | err = PTR_ERR(device); | 703 | continue; |
704 | goto errout; | ||
705 | } | ||
706 | platform_devices[i] = device; | 704 | platform_devices[i] = device; |
707 | cards++; | 705 | cards++; |
708 | } | 706 | } |
@@ -719,14 +717,10 @@ static int __init alsa_card_cmi8330_init(void) | |||
719 | #ifdef MODULE | 717 | #ifdef MODULE |
720 | snd_printk(KERN_ERR "CMI8330 not found or device busy\n"); | 718 | snd_printk(KERN_ERR "CMI8330 not found or device busy\n"); |
721 | #endif | 719 | #endif |
722 | err = -ENODEV; | 720 | snd_cmi8330_unregister_all(); |
723 | goto errout; | 721 | return -ENODEV; |
724 | } | 722 | } |
725 | return 0; | 723 | return 0; |
726 | |||
727 | errout: | ||
728 | snd_cmi8330_unregister_all(); | ||
729 | return err; | ||
730 | } | 724 | } |
731 | 725 | ||
732 | static void __exit alsa_card_cmi8330_exit(void) | 726 | static void __exit alsa_card_cmi8330_exit(void) |
diff --git a/sound/isa/cs423x/cs4231.c b/sound/isa/cs423x/cs4231.c index a30dcd96252..073dac97567 100644 --- a/sound/isa/cs423x/cs4231.c +++ b/sound/isa/cs423x/cs4231.c | |||
@@ -209,10 +209,8 @@ static int __init alsa_card_cs4231_init(void) | |||
209 | continue; | 209 | continue; |
210 | device = platform_device_register_simple(SND_CS4231_DRIVER, | 210 | device = platform_device_register_simple(SND_CS4231_DRIVER, |
211 | i, NULL, 0); | 211 | i, NULL, 0); |
212 | if (IS_ERR(device)) { | 212 | if (IS_ERR(device)) |
213 | err = PTR_ERR(device); | 213 | continue; |
214 | goto errout; | ||
215 | } | ||
216 | devices[i] = device; | 214 | devices[i] = device; |
217 | cards++; | 215 | cards++; |
218 | } | 216 | } |
@@ -220,14 +218,10 @@ static int __init alsa_card_cs4231_init(void) | |||
220 | #ifdef MODULE | 218 | #ifdef MODULE |
221 | printk(KERN_ERR "CS4231 soundcard not found or device busy\n"); | 219 | printk(KERN_ERR "CS4231 soundcard not found or device busy\n"); |
222 | #endif | 220 | #endif |
223 | err = -ENODEV; | 221 | snd_cs4231_unregister_all(); |
224 | goto errout; | 222 | return -ENODEV; |
225 | } | 223 | } |
226 | return 0; | 224 | return 0; |
227 | |||
228 | errout: | ||
229 | snd_cs4231_unregister_all(); | ||
230 | return err; | ||
231 | } | 225 | } |
232 | 226 | ||
233 | static void __exit alsa_card_cs4231_exit(void) | 227 | static void __exit alsa_card_cs4231_exit(void) |
diff --git a/sound/isa/cs423x/cs4236.c b/sound/isa/cs423x/cs4236.c index 382bb17ef49..b07a62b7617 100644 --- a/sound/isa/cs423x/cs4236.c +++ b/sound/isa/cs423x/cs4236.c | |||
@@ -780,10 +780,8 @@ static int __init alsa_card_cs423x_init(void) | |||
780 | continue; | 780 | continue; |
781 | device = platform_device_register_simple(CS423X_DRIVER, | 781 | device = platform_device_register_simple(CS423X_DRIVER, |
782 | i, NULL, 0); | 782 | i, NULL, 0); |
783 | if (IS_ERR(device)) { | 783 | if (IS_ERR(device)) |
784 | err = PTR_ERR(device); | 784 | continue; |
785 | goto errout; | ||
786 | } | ||
787 | platform_devices[i] = device; | 785 | platform_devices[i] = device; |
788 | snd_cs423x_devices++; | 786 | snd_cs423x_devices++; |
789 | } | 787 | } |
@@ -802,14 +800,10 @@ static int __init alsa_card_cs423x_init(void) | |||
802 | #ifdef MODULE | 800 | #ifdef MODULE |
803 | printk(KERN_ERR IDENT " soundcard not found or device busy\n"); | 801 | printk(KERN_ERR IDENT " soundcard not found or device busy\n"); |
804 | #endif | 802 | #endif |
805 | err = -ENODEV; | 803 | snd_cs423x_unregister_all(); |
806 | goto errout; | 804 | return -ENODEV; |
807 | } | 805 | } |
808 | return 0; | 806 | return 0; |
809 | |||
810 | errout: | ||
811 | snd_cs423x_unregister_all(); | ||
812 | return err; | ||
813 | } | 807 | } |
814 | 808 | ||
815 | static void __exit alsa_card_cs423x_exit(void) | 809 | static void __exit alsa_card_cs423x_exit(void) |
diff --git a/sound/isa/es1688/es1688.c b/sound/isa/es1688/es1688.c index 2b69fc82926..d83d7104958 100644 --- a/sound/isa/es1688/es1688.c +++ b/sound/isa/es1688/es1688.c | |||
@@ -213,10 +213,8 @@ static int __init alsa_card_es1688_init(void) | |||
213 | continue; | 213 | continue; |
214 | device = platform_device_register_simple(ES1688_DRIVER, | 214 | device = platform_device_register_simple(ES1688_DRIVER, |
215 | i, NULL, 0); | 215 | i, NULL, 0); |
216 | if (IS_ERR(device)) { | 216 | if (IS_ERR(device)) |
217 | err = PTR_ERR(device); | 217 | continue; |
218 | goto errout; | ||
219 | } | ||
220 | devices[i] = device; | 218 | devices[i] = device; |
221 | cards++; | 219 | cards++; |
222 | } | 220 | } |
@@ -224,14 +222,10 @@ static int __init alsa_card_es1688_init(void) | |||
224 | #ifdef MODULE | 222 | #ifdef MODULE |
225 | printk(KERN_ERR "ESS AudioDrive ES1688 soundcard not found or device busy\n"); | 223 | printk(KERN_ERR "ESS AudioDrive ES1688 soundcard not found or device busy\n"); |
226 | #endif | 224 | #endif |
227 | err = -ENODEV; | 225 | snd_es1688_unregister_all(); |
228 | goto errout; | 226 | return -ENODEV; |
229 | } | 227 | } |
230 | return 0; | 228 | return 0; |
231 | |||
232 | errout: | ||
233 | snd_es1688_unregister_all(); | ||
234 | return err; | ||
235 | } | 229 | } |
236 | 230 | ||
237 | static void __exit alsa_card_es1688_exit(void) | 231 | static void __exit alsa_card_es1688_exit(void) |
diff --git a/sound/isa/es18xx.c b/sound/isa/es18xx.c index 9fbc185b4cc..0da249bcf02 100644 --- a/sound/isa/es18xx.c +++ b/sound/isa/es18xx.c | |||
@@ -2391,10 +2391,8 @@ static int __init alsa_card_es18xx_init(void) | |||
2391 | continue; | 2391 | continue; |
2392 | device = platform_device_register_simple(ES18XX_DRIVER, | 2392 | device = platform_device_register_simple(ES18XX_DRIVER, |
2393 | i, NULL, 0); | 2393 | i, NULL, 0); |
2394 | if (IS_ERR(device)) { | 2394 | if (IS_ERR(device)) |
2395 | err = PTR_ERR(device); | 2395 | continue; |
2396 | goto errout; | ||
2397 | } | ||
2398 | platform_devices[i] = device; | 2396 | platform_devices[i] = device; |
2399 | cards++; | 2397 | cards++; |
2400 | } | 2398 | } |
@@ -2411,14 +2409,10 @@ static int __init alsa_card_es18xx_init(void) | |||
2411 | #ifdef MODULE | 2409 | #ifdef MODULE |
2412 | snd_printk(KERN_ERR "ESS AudioDrive ES18xx soundcard not found or device busy\n"); | 2410 | snd_printk(KERN_ERR "ESS AudioDrive ES18xx soundcard not found or device busy\n"); |
2413 | #endif | 2411 | #endif |
2414 | err = -ENODEV; | 2412 | snd_es18xx_unregister_all(); |
2415 | goto errout; | 2413 | return -ENODEV; |
2416 | } | 2414 | } |
2417 | return 0; | 2415 | return 0; |
2418 | |||
2419 | errout: | ||
2420 | snd_es18xx_unregister_all(); | ||
2421 | return err; | ||
2422 | } | 2416 | } |
2423 | 2417 | ||
2424 | static void __exit alsa_card_es18xx_exit(void) | 2418 | static void __exit alsa_card_es18xx_exit(void) |
diff --git a/sound/isa/gus/gusclassic.c b/sound/isa/gus/gusclassic.c index 26dccfea243..ed34427c49d 100644 --- a/sound/isa/gus/gusclassic.c +++ b/sound/isa/gus/gusclassic.c | |||
@@ -253,10 +253,8 @@ static int __init alsa_card_gusclassic_init(void) | |||
253 | continue; | 253 | continue; |
254 | device = platform_device_register_simple(GUSCLASSIC_DRIVER, | 254 | device = platform_device_register_simple(GUSCLASSIC_DRIVER, |
255 | i, NULL, 0); | 255 | i, NULL, 0); |
256 | if (IS_ERR(device)) { | 256 | if (IS_ERR(device)) |
257 | err = PTR_ERR(device); | 257 | continue; |
258 | goto errout; | ||
259 | } | ||
260 | devices[i] = device; | 258 | devices[i] = device; |
261 | cards++; | 259 | cards++; |
262 | } | 260 | } |
@@ -264,14 +262,10 @@ static int __init alsa_card_gusclassic_init(void) | |||
264 | #ifdef MODULE | 262 | #ifdef MODULE |
265 | printk(KERN_ERR "GUS Classic soundcard not found or device busy\n"); | 263 | printk(KERN_ERR "GUS Classic soundcard not found or device busy\n"); |
266 | #endif | 264 | #endif |
267 | err = -ENODEV; | 265 | snd_gusclassic_unregister_all(); |
268 | goto errout; | 266 | return -ENODEV; |
269 | } | 267 | } |
270 | return 0; | 268 | return 0; |
271 | |||
272 | errout: | ||
273 | snd_gusclassic_unregister_all(); | ||
274 | return err; | ||
275 | } | 269 | } |
276 | 270 | ||
277 | static void __exit alsa_card_gusclassic_exit(void) | 271 | static void __exit alsa_card_gusclassic_exit(void) |
diff --git a/sound/isa/gus/gusextreme.c b/sound/isa/gus/gusextreme.c index 31dc20501d0..aa312dee99c 100644 --- a/sound/isa/gus/gusextreme.c +++ b/sound/isa/gus/gusextreme.c | |||
@@ -363,10 +363,8 @@ static int __init alsa_card_gusextreme_init(void) | |||
363 | continue; | 363 | continue; |
364 | device = platform_device_register_simple(GUSEXTREME_DRIVER, | 364 | device = platform_device_register_simple(GUSEXTREME_DRIVER, |
365 | i, NULL, 0); | 365 | i, NULL, 0); |
366 | if (IS_ERR(device)) { | 366 | if (IS_ERR(device)) |
367 | err = PTR_ERR(device); | 367 | continue; |
368 | goto errout; | ||
369 | } | ||
370 | devices[i] = device; | 368 | devices[i] = device; |
371 | cards++; | 369 | cards++; |
372 | } | 370 | } |
@@ -374,14 +372,10 @@ static int __init alsa_card_gusextreme_init(void) | |||
374 | #ifdef MODULE | 372 | #ifdef MODULE |
375 | printk(KERN_ERR "GUS Extreme soundcard not found or device busy\n"); | 373 | printk(KERN_ERR "GUS Extreme soundcard not found or device busy\n"); |
376 | #endif | 374 | #endif |
377 | err = -ENODEV; | 375 | snd_gusextreme_unregister_all(); |
378 | goto errout; | 376 | return -ENODEV; |
379 | } | 377 | } |
380 | return 0; | 378 | return 0; |
381 | |||
382 | errout: | ||
383 | snd_gusextreme_unregister_all(); | ||
384 | return err; | ||
385 | } | 379 | } |
386 | 380 | ||
387 | static void __exit alsa_card_gusextreme_exit(void) | 381 | static void __exit alsa_card_gusextreme_exit(void) |
diff --git a/sound/isa/gus/gusmax.c b/sound/isa/gus/gusmax.c index cafb9b67fa7..a733fabf653 100644 --- a/sound/isa/gus/gusmax.c +++ b/sound/isa/gus/gusmax.c | |||
@@ -390,10 +390,8 @@ static int __init alsa_card_gusmax_init(void) | |||
390 | continue; | 390 | continue; |
391 | device = platform_device_register_simple(GUSMAX_DRIVER, | 391 | device = platform_device_register_simple(GUSMAX_DRIVER, |
392 | i, NULL, 0); | 392 | i, NULL, 0); |
393 | if (IS_ERR(device)) { | 393 | if (IS_ERR(device)) |
394 | err = PTR_ERR(device); | 394 | continue; |
395 | goto errout; | ||
396 | } | ||
397 | devices[i] = device; | 395 | devices[i] = device; |
398 | cards++; | 396 | cards++; |
399 | } | 397 | } |
@@ -401,14 +399,10 @@ static int __init alsa_card_gusmax_init(void) | |||
401 | #ifdef MODULE | 399 | #ifdef MODULE |
402 | printk(KERN_ERR "GUS MAX soundcard not found or device busy\n"); | 400 | printk(KERN_ERR "GUS MAX soundcard not found or device busy\n"); |
403 | #endif | 401 | #endif |
404 | err = -ENODEV; | 402 | snd_gusmax_unregister_all(); |
405 | goto errout; | 403 | return -ENODEV; |
406 | } | 404 | } |
407 | return 0; | 405 | return 0; |
408 | |||
409 | errout: | ||
410 | snd_gusmax_unregister_all(); | ||
411 | return err; | ||
412 | } | 406 | } |
413 | 407 | ||
414 | static void __exit alsa_card_gusmax_exit(void) | 408 | static void __exit alsa_card_gusmax_exit(void) |
diff --git a/sound/isa/gus/interwave.c b/sound/isa/gus/interwave.c index de71b7a99c8..4be472ea99d 100644 --- a/sound/isa/gus/interwave.c +++ b/sound/isa/gus/interwave.c | |||
@@ -947,10 +947,8 @@ static int __init alsa_card_interwave_init(void) | |||
947 | #endif | 947 | #endif |
948 | device = platform_device_register_simple(INTERWAVE_DRIVER, | 948 | device = platform_device_register_simple(INTERWAVE_DRIVER, |
949 | i, NULL, 0); | 949 | i, NULL, 0); |
950 | if (IS_ERR(device)) { | 950 | if (IS_ERR(device)) |
951 | err = PTR_ERR(device); | 951 | continue; |
952 | goto errout; | ||
953 | } | ||
954 | platform_devices[i] = device; | 952 | platform_devices[i] = device; |
955 | cards++; | 953 | cards++; |
956 | } | 954 | } |
@@ -966,14 +964,10 @@ static int __init alsa_card_interwave_init(void) | |||
966 | #ifdef MODULE | 964 | #ifdef MODULE |
967 | printk(KERN_ERR "InterWave soundcard not found or device busy\n"); | 965 | printk(KERN_ERR "InterWave soundcard not found or device busy\n"); |
968 | #endif | 966 | #endif |
969 | err = -ENODEV; | 967 | snd_interwave_unregister_all(); |
970 | goto errout; | 968 | return -ENODEV; |
971 | } | 969 | } |
972 | return 0; | 970 | return 0; |
973 | |||
974 | errout: | ||
975 | snd_interwave_unregister_all(); | ||
976 | return err; | ||
977 | } | 971 | } |
978 | 972 | ||
979 | static void __exit alsa_card_interwave_exit(void) | 973 | static void __exit alsa_card_interwave_exit(void) |
diff --git a/sound/isa/opl3sa2.c b/sound/isa/opl3sa2.c index c906e205d7d..02ae73ea0ba 100644 --- a/sound/isa/opl3sa2.c +++ b/sound/isa/opl3sa2.c | |||
@@ -962,10 +962,8 @@ static int __init alsa_card_opl3sa2_init(void) | |||
962 | #endif | 962 | #endif |
963 | device = platform_device_register_simple(OPL3SA2_DRIVER, | 963 | device = platform_device_register_simple(OPL3SA2_DRIVER, |
964 | i, NULL, 0); | 964 | i, NULL, 0); |
965 | if (IS_ERR(device)) { | 965 | if (IS_ERR(device)) |
966 | err = PTR_ERR(device); | 966 | continue; |
967 | goto errout; | ||
968 | } | ||
969 | platform_devices[i] = device; | 967 | platform_devices[i] = device; |
970 | snd_opl3sa2_devices++; | 968 | snd_opl3sa2_devices++; |
971 | } | 969 | } |
@@ -983,14 +981,10 @@ static int __init alsa_card_opl3sa2_init(void) | |||
983 | #ifdef MODULE | 981 | #ifdef MODULE |
984 | snd_printk(KERN_ERR "Yamaha OPL3-SA soundcard not found or device busy\n"); | 982 | snd_printk(KERN_ERR "Yamaha OPL3-SA soundcard not found or device busy\n"); |
985 | #endif | 983 | #endif |
986 | err = -ENODEV; | 984 | snd_opl3sa2_unregister_all(); |
987 | goto errout; | 985 | return -ENODEV; |
988 | } | 986 | } |
989 | return 0; | 987 | return 0; |
990 | |||
991 | errout: | ||
992 | snd_opl3sa2_unregister_all(); | ||
993 | return err; | ||
994 | } | 988 | } |
995 | 989 | ||
996 | static void __exit alsa_card_opl3sa2_exit(void) | 990 | static void __exit alsa_card_opl3sa2_exit(void) |
diff --git a/sound/isa/sb/sb16.c b/sound/isa/sb/sb16.c index 21ea65925a9..24fa190f33a 100644 --- a/sound/isa/sb/sb16.c +++ b/sound/isa/sb/sb16.c | |||
@@ -720,10 +720,8 @@ static int __init alsa_card_sb16_init(void) | |||
720 | continue; | 720 | continue; |
721 | device = platform_device_register_simple(SND_SB16_DRIVER, | 721 | device = platform_device_register_simple(SND_SB16_DRIVER, |
722 | i, NULL, 0); | 722 | i, NULL, 0); |
723 | if (IS_ERR(device)) { | 723 | if (IS_ERR(device)) |
724 | err = PTR_ERR(device); | 724 | continue; |
725 | goto errout; | ||
726 | } | ||
727 | platform_devices[i] = device; | 725 | platform_devices[i] = device; |
728 | cards++; | 726 | cards++; |
729 | } | 727 | } |
@@ -745,14 +743,10 @@ static int __init alsa_card_sb16_init(void) | |||
745 | snd_printk(KERN_ERR "In case, if you have AWE card, try snd-sbawe module\n"); | 743 | snd_printk(KERN_ERR "In case, if you have AWE card, try snd-sbawe module\n"); |
746 | #endif | 744 | #endif |
747 | #endif | 745 | #endif |
748 | err = -ENODEV; | 746 | snd_sb16_unregister_all(); |
749 | goto errout; | 747 | return -ENODEV; |
750 | } | 748 | } |
751 | return 0; | 749 | return 0; |
752 | |||
753 | errout: | ||
754 | snd_sb16_unregister_all(); | ||
755 | return err; | ||
756 | } | 750 | } |
757 | 751 | ||
758 | static void __exit alsa_card_sb16_exit(void) | 752 | static void __exit alsa_card_sb16_exit(void) |
diff --git a/sound/isa/sb/sb8.c b/sound/isa/sb/sb8.c index 3efa23d303c..f75eeb05c1f 100644 --- a/sound/isa/sb/sb8.c +++ b/sound/isa/sb/sb8.c | |||
@@ -264,10 +264,8 @@ static int __init alsa_card_sb8_init(void) | |||
264 | continue; | 264 | continue; |
265 | device = platform_device_register_simple(SND_SB8_DRIVER, | 265 | device = platform_device_register_simple(SND_SB8_DRIVER, |
266 | i, NULL, 0); | 266 | i, NULL, 0); |
267 | if (IS_ERR(device)) { | 267 | if (IS_ERR(device)) |
268 | err = PTR_ERR(device); | 268 | continue; |
269 | goto errout; | ||
270 | } | ||
271 | devices[i] = device; | 269 | devices[i] = device; |
272 | cards++; | 270 | cards++; |
273 | } | 271 | } |
@@ -275,14 +273,10 @@ static int __init alsa_card_sb8_init(void) | |||
275 | #ifdef MODULE | 273 | #ifdef MODULE |
276 | snd_printk(KERN_ERR "Sound Blaster soundcard not found or device busy\n"); | 274 | snd_printk(KERN_ERR "Sound Blaster soundcard not found or device busy\n"); |
277 | #endif | 275 | #endif |
278 | err = -ENODEV; | 276 | snd_sb8_unregister_all(); |
279 | goto errout; | 277 | return -ENODEV; |
280 | } | 278 | } |
281 | return 0; | 279 | return 0; |
282 | |||
283 | errout: | ||
284 | snd_sb8_unregister_all(); | ||
285 | return err; | ||
286 | } | 280 | } |
287 | 281 | ||
288 | static void __exit alsa_card_sb8_exit(void) | 282 | static void __exit alsa_card_sb8_exit(void) |
diff --git a/sound/isa/sgalaxy.c b/sound/isa/sgalaxy.c index a60e66afbf9..f01a80a97ab 100644 --- a/sound/isa/sgalaxy.c +++ b/sound/isa/sgalaxy.c | |||
@@ -366,10 +366,8 @@ static int __init alsa_card_sgalaxy_init(void) | |||
366 | continue; | 366 | continue; |
367 | device = platform_device_register_simple(SND_SGALAXY_DRIVER, | 367 | device = platform_device_register_simple(SND_SGALAXY_DRIVER, |
368 | i, NULL, 0); | 368 | i, NULL, 0); |
369 | if (IS_ERR(device)) { | 369 | if (IS_ERR(device)) |
370 | err = PTR_ERR(device); | 370 | continue; |
371 | goto errout; | ||
372 | } | ||
373 | devices[i] = device; | 371 | devices[i] = device; |
374 | cards++; | 372 | cards++; |
375 | } | 373 | } |
@@ -377,14 +375,10 @@ static int __init alsa_card_sgalaxy_init(void) | |||
377 | #ifdef MODULE | 375 | #ifdef MODULE |
378 | snd_printk(KERN_ERR "Sound Galaxy soundcard not found or device busy\n"); | 376 | snd_printk(KERN_ERR "Sound Galaxy soundcard not found or device busy\n"); |
379 | #endif | 377 | #endif |
380 | err = -ENODEV; | 378 | snd_sgalaxy_unregister_all(); |
381 | goto errout; | 379 | return -ENODEV; |
382 | } | 380 | } |
383 | return 0; | 381 | return 0; |
384 | |||
385 | errout: | ||
386 | snd_sgalaxy_unregister_all(); | ||
387 | return err; | ||
388 | } | 382 | } |
389 | 383 | ||
390 | static void __exit alsa_card_sgalaxy_exit(void) | 384 | static void __exit alsa_card_sgalaxy_exit(void) |
diff --git a/sound/isa/sscape.c b/sound/isa/sscape.c index 48e5552d344..532f6e0eff0 100644 --- a/sound/isa/sscape.c +++ b/sound/isa/sscape.c | |||
@@ -1427,8 +1427,8 @@ static int __init sscape_manual_probe(void) | |||
1427 | dma[i] == SNDRV_AUTO_DMA) { | 1427 | dma[i] == SNDRV_AUTO_DMA) { |
1428 | printk(KERN_INFO | 1428 | printk(KERN_INFO |
1429 | "sscape: insufficient parameters, need IO, IRQ, MPU-IRQ and DMA\n"); | 1429 | "sscape: insufficient parameters, need IO, IRQ, MPU-IRQ and DMA\n"); |
1430 | ret = -ENXIO; | 1430 | sscape_unregister_all(); |
1431 | goto errout; | 1431 | return -ENXIO; |
1432 | } | 1432 | } |
1433 | 1433 | ||
1434 | /* | 1434 | /* |
@@ -1436,17 +1436,11 @@ static int __init sscape_manual_probe(void) | |||
1436 | */ | 1436 | */ |
1437 | device = platform_device_register_simple(SSCAPE_DRIVER, | 1437 | device = platform_device_register_simple(SSCAPE_DRIVER, |
1438 | i, NULL, 0); | 1438 | i, NULL, 0); |
1439 | if (IS_ERR(device)) { | 1439 | if (IS_ERR(device)) |
1440 | ret = PTR_ERR(device); | 1440 | continue; |
1441 | goto errout; | ||
1442 | } | ||
1443 | platform_devices[i] = device; | 1441 | platform_devices[i] = device; |
1444 | } | 1442 | } |
1445 | return 0; | 1443 | return 0; |
1446 | |||
1447 | errout: | ||
1448 | sscape_unregister_all(); | ||
1449 | return ret; | ||
1450 | } | 1444 | } |
1451 | 1445 | ||
1452 | static void sscape_exit(void) | 1446 | static void sscape_exit(void) |
diff --git a/sound/isa/wavefront/wavefront.c b/sound/isa/wavefront/wavefront.c index 2f13cd5d4dc..ed9d0173e80 100644 --- a/sound/isa/wavefront/wavefront.c +++ b/sound/isa/wavefront/wavefront.c | |||
@@ -722,10 +722,8 @@ static int __init alsa_card_wavefront_init(void) | |||
722 | #endif | 722 | #endif |
723 | device = platform_device_register_simple(WAVEFRONT_DRIVER, | 723 | device = platform_device_register_simple(WAVEFRONT_DRIVER, |
724 | i, NULL, 0); | 724 | i, NULL, 0); |
725 | if (IS_ERR(device)) { | 725 | if (IS_ERR(device)) |
726 | err = PTR_ERR(device); | 726 | continue; |
727 | goto errout; | ||
728 | } | ||
729 | platform_devices[i] = device; | 727 | platform_devices[i] = device; |
730 | cards++; | 728 | cards++; |
731 | } | 729 | } |
@@ -742,14 +740,10 @@ static int __init alsa_card_wavefront_init(void) | |||
742 | #ifdef MODULE | 740 | #ifdef MODULE |
743 | printk (KERN_ERR "No WaveFront cards found or devices busy\n"); | 741 | printk (KERN_ERR "No WaveFront cards found or devices busy\n"); |
744 | #endif | 742 | #endif |
745 | err = -ENODEV; | 743 | snd_wavefront_unregister_all(); |
746 | goto errout; | 744 | return -ENODEV; |
747 | } | 745 | } |
748 | return 0; | 746 | return 0; |
749 | |||
750 | errout: | ||
751 | snd_wavefront_unregister_all(); | ||
752 | return err; | ||
753 | } | 747 | } |
754 | 748 | ||
755 | static void __exit alsa_card_wavefront_exit(void) | 749 | static void __exit alsa_card_wavefront_exit(void) |