aboutsummaryrefslogtreecommitdiffstats
path: root/net/netlink/af_netlink.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/netlink/af_netlink.c')
-rw-r--r--net/netlink/af_netlink.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index 480184a857d2..9eb895c7a2a9 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -452,6 +452,10 @@ static int netlink_create(struct net *net, struct socket *sock, int protocol)
452 if (err < 0) 452 if (err < 0)
453 goto out_module; 453 goto out_module;
454 454
455 local_bh_disable();
456 sock_prot_inuse_add(net, &netlink_proto, 1);
457 local_bh_enable();
458
455 nlk = nlk_sk(sock->sk); 459 nlk = nlk_sk(sock->sk);
456 nlk->module = module; 460 nlk->module = module;
457out: 461out:
@@ -511,6 +515,9 @@ static int netlink_release(struct socket *sock)
511 kfree(nlk->groups); 515 kfree(nlk->groups);
512 nlk->groups = NULL; 516 nlk->groups = NULL;
513 517
518 local_bh_disable();
519 sock_prot_inuse_add(sock_net(sk), &netlink_proto, -1);
520 local_bh_enable();
514 sock_put(sk); 521 sock_put(sk);
515 return 0; 522 return 0;
516} 523}