summaryrefslogtreecommitdiff
path: root/net/packet/af_packet.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2011-10-18 10:54:30 +0100
committerDave Airlie <airlied@redhat.com>2011-10-18 10:54:30 +0100
commit017ed8012e74ca15748863f45d2c078453026a0a (patch)
tree7071171a06de4e93fc890e0afce5c23596a26619 /net/packet/af_packet.c
parent80d9b24a658c83602aea66e45e2347c5bb3cbd47 (diff)
parent899e3ee404961a90b828ad527573aaaac39f0ab1 (diff)
Merge tag 'v3.1-rc10' into drm-core-nextdrm-core-next-testing
There are a number of fixes in mainline required for code in -next, also there was a few conflicts I'd rather resolve myself. Signed-off-by: Dave Airlie <airlied@redhat.com> Conflicts: drivers/gpu/drm/radeon/evergreen.c drivers/gpu/drm/radeon/r600.c drivers/gpu/drm/radeon/radeon_asic.h
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)) {