aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/dev.c')
-rw-r--r--net/core/dev.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index 88927f1a3e4f..b9994898d11b 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1862,7 +1862,7 @@ static inline int deliver_skb(struct sk_buff *skb,
1862{ 1862{
1863 if (unlikely(skb_orphan_frags(skb, GFP_ATOMIC))) 1863 if (unlikely(skb_orphan_frags(skb, GFP_ATOMIC)))
1864 return -ENOMEM; 1864 return -ENOMEM;
1865 atomic_inc(&skb->users); 1865 refcount_inc(&skb->users);
1866 return pt_prev->func(skb, skb->dev, pt_prev, orig_dev); 1866 return pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
1867} 1867}
1868 1868
@@ -2484,10 +2484,10 @@ void __dev_kfree_skb_irq(struct sk_buff *skb, enum skb_free_reason reason)
2484 if (unlikely(!skb)) 2484 if (unlikely(!skb))
2485 return; 2485 return;
2486 2486
2487 if (likely(atomic_read(&skb->users) == 1)) { 2487 if (likely(refcount_read(&skb->users) == 1)) {
2488 smp_rmb(); 2488 smp_rmb();
2489 atomic_set(&skb->users, 0); 2489 refcount_set(&skb->users, 0);
2490 } else if (likely(!atomic_dec_and_test(&skb->users))) { 2490 } else if (likely(!refcount_dec_and_test(&skb->users))) {
2491 return; 2491 return;
2492 } 2492 }
2493 get_kfree_skb_cb(skb)->reason = reason; 2493 get_kfree_skb_cb(skb)->reason = reason;
@@ -3955,7 +3955,7 @@ static __latent_entropy void net_tx_action(struct softirq_action *h)
3955 3955
3956 clist = clist->next; 3956 clist = clist->next;
3957 3957
3958 WARN_ON(atomic_read(&skb->users)); 3958 WARN_ON(refcount_read(&skb->users));
3959 if (likely(get_kfree_skb_cb(skb)->reason == SKB_REASON_CONSUMED)) 3959 if (likely(get_kfree_skb_cb(skb)->reason == SKB_REASON_CONSUMED))
3960 trace_consume_skb(skb); 3960 trace_consume_skb(skb);
3961 else 3961 else