net: Make sure BHs are disabled in sock_prot_inuse_add()
Eric Dumazet [Tue, 25 Nov 2008 21:53:27 +0000 (13:53 -0800)]
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>

net/sctp/socket.c

index f03af84..ba81fe3 100644 (file)
@@ -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