Hi Eric, Neil, Should not __dev_kfree_skb_any() call kfree_skb() instead of dev_kfree_skb() which is aliased to consumes_skb() and therefore does not flag the skb with SKB_REASON_DROPPED?
If we take the in_irq() || irqs_disabled() branch, we will be calling __dev_kfree_skb_irq() which takes care of setting the skb_free_reason frmo the caller. Is there an implied semantic with dev_kfree_skb() that it means it was freed by the network device and therefore this equals to a consumption (not a drop)? The comment above dev_kfree_skb_any() seems to imply this should be a context unaware replacement for kfree_skb(). Thanks! -- Florian