summaryrefslogtreecommitdiff
path: root/net/packet/af_packet.c
diff options
context:
space:
mode:
authorGrant Likely <grant.likely@secretlab.ca>2011-10-05 10:52:27 -0600
committerGrant Likely <grant.likely@secretlab.ca>2011-10-05 10:52:27 -0600
commit9514a56753a8d379db36bed424588e1842f2bfcc (patch)
treed13cdfcd9473f521c3b108770dba57e81e557a30 /net/packet/af_packet.c
parent4cd7f7a31178ff8a15ad2bc1258b9b2bf2cf51a4 (diff)
parent6add6967a4a57e2156b96e62f28bcbe1901d16c1 (diff)
Merge branch 'for-grant' of git://git.jdl.com/software/linux-3.0 into devicetree/next
Diffstat (limited to 'net/packet/af_packet.c')
-rw-r--r--net/packet/af_packet.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index c698cec0a445..fabb4fafa281 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -961,7 +961,10 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
return 0;
drop_n_acct:
- po->stats.tp_drops = atomic_inc_return(&sk->sk_drops);
+ spin_lock(&sk->sk_receive_queue.lock);
+ po->stats.tp_drops++;
+ atomic_inc(&sk->sk_drops);
+ spin_unlock(&sk->sk_receive_queue.lock);
drop_n_restore:
if (skb_head != skb->data && skb_shared(skb)) {