X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=sound%2Fdrivers%2Fvirmidi.c;h=59171f8200dfb8fd1dd957e5bb37dd273d292b79;hb=eaa8568901b3164197ce727c4c9b4067383e526c;hp=a3ee306239c92930f4a1baaf86b0bde96a977138;hpb=2e1ca21d46aaef95101723fa402f39d3a95aba59;p=powerpc.git diff --git a/sound/drivers/virmidi.c b/sound/drivers/virmidi.c index a3ee306239..59171f8200 100644 --- a/sound/drivers/virmidi.c +++ b/sound/drivers/virmidi.c @@ -169,9 +169,11 @@ static int __init alsa_card_virmidi_init(void) continue; device = platform_device_register_simple(SND_VIRMIDI_DRIVER, i, NULL, 0); - if (IS_ERR(device)) { - err = PTR_ERR(device); - goto errout; + if (IS_ERR(device)) + continue; + if (!platform_get_drvdata(device)) { + platform_device_unregister(device); + continue; } devices[i] = device; cards++; @@ -180,14 +182,10 @@ static int __init alsa_card_virmidi_init(void) #ifdef MODULE printk(KERN_ERR "Card-VirMIDI soundcard not found or device busy\n"); #endif - err = -ENODEV; - goto errout; + snd_virmidi_unregister_all(); + return -ENODEV; } return 0; - - errout: - snd_virmidi_unregister_all(); - return err; } static void __exit alsa_card_virmidi_exit(void)