ALSA: use subsys_initcall for sound core instead of module_init
[sfrench/cifs-2.6.git] / sound / core / sound.c
index 44a69bb8d4f018e953cf0de692a9fb681a4a74b0..563d1967a0ad9dedea75893570757cc765125b19 100644 (file)
@@ -152,6 +152,10 @@ static int __snd_open(struct inode *inode, struct file *file)
        }
        old_fops = file->f_op;
        file->f_op = fops_get(mptr->f_ops);
+       if (file->f_op == NULL) {
+               file->f_op = old_fops;
+               return -ENODEV;
+       }
        if (file->f_op->open)
                err = file->f_op->open(inode, file);
        if (err) {
@@ -464,5 +468,5 @@ static void __exit alsa_sound_exit(void)
        unregister_chrdev(major, "alsa");
 }
 
-module_init(alsa_sound_init)
-module_exit(alsa_sound_exit)
+subsys_initcall(alsa_sound_init);
+module_exit(alsa_sound_exit);