summaryrefslogtreecommitdiff
path: root/net/sctp/socket.c
diff options
context:
space:
mode:
authorEric Dumazet <dada1@cosmosbay.com>2008-11-26 00:53:27 +0300
committerDavid S. Miller <davem@davemloft.net>2008-11-26 00:53:27 +0300
commit5bc0b3bfa758e4ae49c94e31c1edb9a5f10a8060 (patch)
tree229c10e9c3db1b0e6b1dc0ac2b3964340d2f1732 /net/sctp/socket.c
parent8eecaba900e89643029fd2c253ad8ebb60761165 (diff)
downloadlinux-5bc0b3bfa758e4ae49c94e31c1edb9a5f10a8060.tar.xz
net: Make sure BHs are disabled in sock_prot_inuse_add()
prot->destroy is not called with BH disabled. So we must add explicit BH disable around call to sock_prot_inuse_add() in sctp_destroy_sock() Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp/socket.c')
-rw-r--r--net/sctp/socket.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index f03af84edf63..ba81fe3ccab8 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -3633,7 +3633,9 @@ SCTP_STATIC void sctp_destroy_sock(struct sock *sk)
ep = sctp_sk(sk)->ep;
sctp_endpoint_free(ep);
atomic_dec(&sctp_sockets_allocated);
+ local_bh_disable();
sock_prot_inuse_add(sock_net(sk), sk->sk_prot, -1);
+ local_bh_enable();
}
/* API 4.1.7 shutdown() - TCP Style Syntax