aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/netlink/af_netlink.c3
-rw-r--r--net/sctp/socket.c4
-rw-r--r--net/unix/af_unix.c2
3 files changed, 9 insertions, 0 deletions
diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
index a2071dcfe9e8..c7d76579bf3c 100644
--- a/net/netlink/af_netlink.c
+++ b/net/netlink/af_netlink.c
@@ -452,7 +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();
455 sock_prot_inuse_add(net, &netlink_proto, 1); 456 sock_prot_inuse_add(net, &netlink_proto, 1);
457 local_bh_enable();
458
456 nlk = nlk_sk(sock->sk); 459 nlk = nlk_sk(sock->sk);
457 nlk->module = module; 460 nlk->module = module;
458out: 461out:
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index 0c70eff0b757..f03af84edf63 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -3614,7 +3614,11 @@ SCTP_STATIC int sctp_init_sock(struct sock *sk)
3614 3614
3615 SCTP_DBG_OBJCNT_INC(sock); 3615 SCTP_DBG_OBJCNT_INC(sock);
3616 atomic_inc(&sctp_sockets_allocated); 3616 atomic_inc(&sctp_sockets_allocated);
3617
3618 local_bh_disable();
3617 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1); 3619 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, 1);
3620 local_bh_enable();
3621
3618 return 0; 3622 return 0;
3619} 3623}
3620 3624
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index e1ca8f744ca5..a45a9f7369ed 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -361,7 +361,9 @@ static void unix_sock_destructor(struct sock *sk)
361 unix_release_addr(u->addr); 361 unix_release_addr(u->addr);
362 362
363 atomic_dec(&unix_nr_socks); 363 atomic_dec(&unix_nr_socks);
364 local_bh_disable();
364 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1); 365 sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1);
366 local_bh_enable();
365#ifdef UNIX_REFCNT_DEBUG 367#ifdef UNIX_REFCNT_DEBUG
366 printk(KERN_DEBUG "UNIX %p is destroyed, %d are still alive.\n", sk, 368 printk(KERN_DEBUG "UNIX %p is destroyed, %d are still alive.\n", sk,
367 atomic_read(&unix_nr_socks)); 369 atomic_read(&unix_nr_socks));