Skip to content

Commit

Permalink
net: Simplify ppp_generic pernet operations.
Browse files Browse the repository at this point in the history
Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Eric W. Biederman authored and David S. Miller committed Dec 2, 2009
1 parent e8d0288 commit 741a6fa
Showing 1 changed file with 7 additions and 23 deletions.
30 changes: 7 additions & 23 deletions drivers/net/ppp_generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -864,12 +864,7 @@ static const struct file_operations ppp_device_fops = {

static __net_init int ppp_init_net(struct net *net)
{
struct ppp_net *pn;
int err;

pn = kzalloc(sizeof(*pn), GFP_KERNEL);
if (!pn)
return -ENOMEM;
struct ppp_net *pn = net_generic(net, ppp_net_id);

idr_init(&pn->units_idr);
mutex_init(&pn->all_ppp_mutex);
Expand All @@ -879,32 +874,21 @@ static __net_init int ppp_init_net(struct net *net)

spin_lock_init(&pn->all_channels_lock);

err = net_assign_generic(net, ppp_net_id, pn);
if (err) {
kfree(pn);
return err;
}

return 0;
}

static __net_exit void ppp_exit_net(struct net *net)
{
struct ppp_net *pn;
struct ppp_net *pn = net_generic(net, ppp_net_id);

pn = net_generic(net, ppp_net_id);
idr_destroy(&pn->units_idr);
/*
* if someone has cached our net then
* further net_generic call will return NULL
*/
net_assign_generic(net, ppp_net_id, NULL);
kfree(pn);
}

static struct pernet_operations ppp_net_ops = {
.init = ppp_init_net,
.exit = ppp_exit_net,
.id = &ppp_net_id,
.size = sizeof(struct ppp_net),
};

#define PPP_MAJOR 108
Expand All @@ -917,7 +901,7 @@ static int __init ppp_init(void)

printk(KERN_INFO "PPP generic driver version " PPP_VERSION "\n");

err = register_pernet_gen_device(&ppp_net_id, &ppp_net_ops);
err = register_pernet_device(&ppp_net_ops);
if (err) {
printk(KERN_ERR "failed to register PPP pernet device (%d)\n", err);
goto out;
Expand All @@ -943,7 +927,7 @@ static int __init ppp_init(void)
out_chrdev:
unregister_chrdev(PPP_MAJOR, "ppp");
out_net:
unregister_pernet_gen_device(ppp_net_id, &ppp_net_ops);
unregister_pernet_device(&ppp_net_ops);
out:
return err;
}
Expand Down Expand Up @@ -2835,7 +2819,7 @@ static void __exit ppp_cleanup(void)
unregister_chrdev(PPP_MAJOR, "ppp");
device_destroy(ppp_class, MKDEV(PPP_MAJOR, 0));
class_destroy(ppp_class);
unregister_pernet_gen_device(ppp_net_id, &ppp_net_ops);
unregister_pernet_device(&ppp_net_ops);
}

/*
Expand Down

0 comments on commit 741a6fa

Please sign in to comment.