|
@@ -2307,7 +2307,7 @@ int ppp_register_net_channel(struct net *net, struct ppp_channel *chan)
|
|
|
|
|
|
pch->ppp = NULL;
|
|
|
pch->chan = chan;
|
|
|
- pch->chan_net = net;
|
|
|
+ pch->chan_net = get_net(net);
|
|
|
chan->ppp = pch;
|
|
|
init_ppp_file(&pch->file, CHANNEL);
|
|
|
pch->file.hdrlen = chan->hdrlen;
|
|
@@ -2404,6 +2404,8 @@ ppp_unregister_channel(struct ppp_channel *chan)
|
|
|
spin_lock_bh(&pn->all_channels_lock);
|
|
|
list_del(&pch->list);
|
|
|
spin_unlock_bh(&pn->all_channels_lock);
|
|
|
+ put_net(pch->chan_net);
|
|
|
+ pch->chan_net = NULL;
|
|
|
|
|
|
pch->file.dead = 1;
|
|
|
wake_up_interruptible(&pch->file.rwait);
|