diff --git a/[refs] b/[refs] index 63b00a6ae9c3..c25b798d27d0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d0e5d83284dac15c015bb48115b6780f5a6413cd +refs/heads/master: 7091fbd82cd5686444ffe9935ed6a8190101fe9d diff --git a/trunk/net/packet/af_packet.c b/trunk/net/packet/af_packet.c index c698cec0a445..fabb4fafa281 100644 --- a/trunk/net/packet/af_packet.c +++ b/trunk/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)) {