Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 25296d59 authored by Wang Chen's avatar Wang Chen Committed by David S. Miller
Browse files

[PKTGEN]: 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 46ecf0b9
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -3570,14 +3570,14 @@ static int pktgen_add_device(struct pktgen_thread *t, const char *ifname)
	if (err)
		goto out1;

	pkt_dev->entry = create_proc_entry(ifname, 0600, pg_proc_dir);
	pkt_dev->entry = proc_create(ifname, 0600,
				     pg_proc_dir, &pktgen_if_fops);
	if (!pkt_dev->entry) {
		printk(KERN_ERR "pktgen: cannot create %s/%s procfs entry.\n",
		       PG_PROC_DIR, ifname);
		err = -EINVAL;
		goto out2;
	}
	pkt_dev->entry->proc_fops = &pktgen_if_fops;
	pkt_dev->entry->data = pkt_dev;
#ifdef CONFIG_XFRM
	pkt_dev->ipsmode = XFRM_MODE_TRANSPORT;
@@ -3628,7 +3628,7 @@ static int __init pktgen_create_thread(int cpu)
	kthread_bind(p, cpu);
	t->tsk = p;

	pe = create_proc_entry(t->tsk->comm, 0600, pg_proc_dir);
	pe = proc_create(t->tsk->comm, 0600, pg_proc_dir, &pktgen_thread_fops);
	if (!pe) {
		printk(KERN_ERR "pktgen: cannot create %s/%s procfs entry.\n",
		       PG_PROC_DIR, t->tsk->comm);
@@ -3638,7 +3638,6 @@ static int __init pktgen_create_thread(int cpu)
		return -EINVAL;
	}

	pe->proc_fops = &pktgen_thread_fops;
	pe->data = t;

	wake_up_process(p);
@@ -3709,7 +3708,7 @@ static int __init pg_init(void)
		return -ENODEV;
	pg_proc_dir->owner = THIS_MODULE;

	pe = create_proc_entry(PGCTRL, 0600, pg_proc_dir);
	pe = proc_create(PGCTRL, 0600, pg_proc_dir, &pktgen_fops);
	if (pe == NULL) {
		printk(KERN_ERR "pktgen: ERROR: cannot create %s "
		       "procfs entry.\n", PGCTRL);
@@ -3717,7 +3716,6 @@ static int __init pg_init(void)
		return -EINVAL;
	}

	pe->proc_fops = &pktgen_fops;
	pe->data = NULL;

	/* Register us to receive netdevice events */