#ifdef CONFIG_PROC_FS
        { struct proc_dir_entry *ent;
-       ent = create_proc_entry("ircomm", 0, proc_irda);
-       if (ent)
-               ent->proc_fops = &ircomm_proc_fops;
+       ent = proc_create("ircomm", 0, proc_irda, &ircomm_proc_fops);
+       if (!ent) {
+               printk(KERN_ERR "ircomm_init: can't create /proc entry!\n");
+               return -ENODEV;
+       }
        }
 #endif /* CONFIG_PROC_FS */
 
 
 
 #ifdef CONFIG_PROC_FS
        { struct proc_dir_entry *proc;
-       proc = create_proc_entry("irlan", 0, proc_irda);
+       proc = proc_create("irlan", 0, proc_irda, &irlan_fops);
        if (!proc) {
                printk(KERN_ERR "irlan_init: can't create /proc entry!\n");
                return -ENODEV;
        }
-
-       proc->proc_fops = &irlan_fops;
        }
 #endif /* CONFIG_PROC_FS */
 
 
                return;
        proc_irda->owner = THIS_MODULE;
 
-       for (i=0; i<ARRAY_SIZE(irda_dirs); i++) {
-               d = create_proc_entry(irda_dirs[i].name, 0, proc_irda);
-               if (d)
-                       d->proc_fops = irda_dirs[i].fops;
-       }
+       for (i = 0; i < ARRAY_SIZE(irda_dirs); i++)
+               d = proc_create(irda_dirs[i].name, 0, proc_irda,
+                               irda_dirs[i].fops);
 }
 
 /*