>> >> The call gic_handle_irq() sounds like a hardware IRQ func/context. >> >> The flush_backlog() call is due to the device is being unregistered. >> Yes, this is the ARM interrupt controller. It appeared as if wifi was getting torn down around this. >> I'm surprised to see kfree_skb() being called from hardirq context, I >> though that was not allowed. >> >> AFAIK this is the reason we have: __dev_kfree_skb_any() which defer >> freeing the SKB if (in_irq() || irqs_disabled()). >> >> Code: >> void __dev_kfree_skb_any(struct sk_buff *skb, enum skb_free_reason >> reason) >> { >> if (in_irq() || irqs_disabled()) >> __dev_kfree_skb_irq(skb, reason); >> else >> dev_kfree_skb(skb); >> } > > Right, but flush_backlog() is processing packets coming from RX, that > should have no conntracking attached at all. > > Might be a bug in a tunnel ? Thanks Jesper \ Eric. I'll explore into why a conntrack entry is associated with this skb. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html