Commit 5e47879f authored by Wang Chen's avatar Wang Chen Committed by David S. Miller
Browse files

[IRDA]: Use proc_create() to setup ->proc_fops first



Use proc_create() to make sure that ->proc_fops be setup before gluing
PDE to main tree.

Signed-off-by: default avatarWang Chen <wangchen@cn.fujitsu.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 0bc8c7bf
Loading
Loading
Loading
Loading
+5 −3
Original line number Original line Diff line number Diff line
@@ -76,9 +76,11 @@ static int __init ircomm_init(void)


#ifdef CONFIG_PROC_FS
#ifdef CONFIG_PROC_FS
	{ struct proc_dir_entry *ent;
	{ struct proc_dir_entry *ent;
	ent = create_proc_entry("ircomm", 0, proc_irda);
	ent = proc_create("ircomm", 0, proc_irda, &ircomm_proc_fops);
	if (ent)
	if (!ent) {
		ent->proc_fops = &ircomm_proc_fops;
		printk(KERN_ERR "ircomm_init: can't create /proc entry!\n");
		return -ENODEV;
	}
	}
	}
#endif /* CONFIG_PROC_FS */
#endif /* CONFIG_PROC_FS */


+1 −3
Original line number Original line Diff line number Diff line
@@ -128,13 +128,11 @@ static int __init irlan_init(void)


#ifdef CONFIG_PROC_FS
#ifdef CONFIG_PROC_FS
	{ struct proc_dir_entry *proc;
	{ struct proc_dir_entry *proc;
	proc = create_proc_entry("irlan", 0, proc_irda);
	proc = proc_create("irlan", 0, proc_irda, &irlan_fops);
	if (!proc) {
	if (!proc) {
		printk(KERN_ERR "irlan_init: can't create /proc entry!\n");
		printk(KERN_ERR "irlan_init: can't create /proc entry!\n");
		return -ENODEV;
		return -ENODEV;
	}
	}

	proc->proc_fops = &irlan_fops;
	}
	}
#endif /* CONFIG_PROC_FS */
#endif /* CONFIG_PROC_FS */


+3 −5
Original line number Original line Diff line number Diff line
@@ -72,11 +72,9 @@ void __init irda_proc_register(void)
		return;
		return;
	proc_irda->owner = THIS_MODULE;
	proc_irda->owner = THIS_MODULE;


	for (i=0; i<ARRAY_SIZE(irda_dirs); i++) {
	for (i = 0; i < ARRAY_SIZE(irda_dirs); i++)
		d = create_proc_entry(irda_dirs[i].name, 0, proc_irda);
		d = proc_create(irda_dirs[i].name, 0, proc_irda,
		if (d)
				irda_dirs[i].fops);
			d->proc_fops = irda_dirs[i].fops;
	}
}
}


/*
/*