Merge branch 'linus' into release
[pandora-kernel.git] / net / packet / af_packet.c
index b4870a3..5f94db2 100644 (file)
@@ -872,6 +872,7 @@ static int packet_release(struct socket *sock)
 
        write_lock_bh(&net->packet.sklist_lock);
        sk_del_node_init(sk);
+       sock_prot_inuse_add(net, sk->sk_prot, -1);
        write_unlock_bh(&net->packet.sklist_lock);
 
        /*
@@ -910,7 +911,6 @@ static int packet_release(struct socket *sock)
        skb_queue_purge(&sk->sk_receive_queue);
        sk_refcnt_debug_release(sk);
 
-       sock_prot_inuse_add(net, sk->sk_prot, -1);
        sock_put(sk);
        return 0;
 }
@@ -1085,8 +1085,8 @@ static int packet_create(struct net *net, struct socket *sock, int protocol)
 
        write_lock_bh(&net->packet.sklist_lock);
        sk_add_node(sk, &net->packet.sklist);
-       write_unlock_bh(&net->packet.sklist_lock);
        sock_prot_inuse_add(net, &packet_proto, 1);
+       write_unlock_bh(&net->packet.sklist_lock);
        return(0);
 out:
        return err;