diff options
Diffstat (limited to 'sound/isa/gus/gusclassic.c')
-rw-r--r-- | sound/isa/gus/gusclassic.c | 14 |
1 files changed, 4 insertions, 10 deletions
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) |