aboutsummaryrefslogtreecommitdiffstats
path: root/net/packet/af_packet.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/packet/af_packet.c')
-rw-r--r--net/packet/af_packet.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index b4870a34c435..5f94db2f3e9e 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -872,6 +872,7 @@ static int packet_release(struct socket *sock)
872 872
873 write_lock_bh(&net->packet.sklist_lock); 873 write_lock_bh(&net->packet.sklist_lock);
874 sk_del_node_init(sk); 874 sk_del_node_init(sk);
875 sock_prot_inuse_add(net, sk->sk_prot, -1);
875 write_unlock_bh(&net->packet.sklist_lock); 876 write_unlock_bh(&net->packet.sklist_lock);
876 877
877 /* 878 /*
@@ -910,7 +911,6 @@ static int packet_release(struct socket *sock)
910 skb_queue_purge(&sk->sk_receive_queue); 911 skb_queue_purge(&sk->sk_receive_queue);
911 sk_refcnt_debug_release(sk); 912 sk_refcnt_debug_release(sk);
912 913
913 sock_prot_inuse_add(net, sk->sk_prot, -1);
914 sock_put(sk); 914 sock_put(sk);
915 return 0; 915 return 0;
916} 916}
@@ -1085,8 +1085,8 @@ static int packet_create(struct net *net, struct socket *sock, int protocol)
1085 1085
1086 write_lock_bh(&net->packet.sklist_lock); 1086 write_lock_bh(&net->packet.sklist_lock);
1087 sk_add_node(sk, &net->packet.sklist); 1087 sk_add_node(sk, &net->packet.sklist);
1088 write_unlock_bh(&net->packet.sklist_lock);
1089 sock_prot_inuse_add(net, &packet_proto, 1); 1088 sock_prot_inuse_add(net, &packet_proto, 1);
1089 write_unlock_bh(&net->packet.sklist_lock);
1090 return(0); 1090 return(0);
1091out: 1091out:
1092 return err; 1092 return err;