diff options
Diffstat (limited to 'sound/isa/gus/gusextreme.c')
-rw-r--r-- | sound/isa/gus/gusextreme.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/sound/isa/gus/gusextreme.c b/sound/isa/gus/gusextreme.c index 31dc20501d0c..aa312dee99c8 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) |