diff options
Diffstat (limited to 'net/packet/af_packet.c')
-rw-r--r-- | net/packet/af_packet.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 25e68f56b4ba..dac91abf4c0f 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c | |||
@@ -1720,7 +1720,10 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev, | |||
1720 | return 0; | 1720 | return 0; |
1721 | 1721 | ||
1722 | drop_n_acct: | 1722 | drop_n_acct: |
1723 | po->stats.tp_drops = atomic_inc_return(&sk->sk_drops); | 1723 | spin_lock(&sk->sk_receive_queue.lock); |
1724 | po->stats.tp_drops++; | ||
1725 | atomic_inc(&sk->sk_drops); | ||
1726 | spin_unlock(&sk->sk_receive_queue.lock); | ||
1724 | 1727 | ||
1725 | drop_n_restore: | 1728 | drop_n_restore: |
1726 | if (skb_head != skb->data && skb_shared(skb)) { | 1729 | if (skb_head != skb->data && skb_shared(skb)) { |