diff options
-rw-r--r-- | net/netlink/af_netlink.c | 3 | ||||
-rw-r--r-- | net/sctp/socket.c | 4 | ||||
-rw-r--r-- | net/unix/af_unix.c | 2 |
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; |
458 | out: | 461 | out: |
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)); |