On Thu, 2013-05-16 at 17:13 +0100, Russell King - ARM Linux wrote:
It seems that txq_reclaim() takes the netif tx lock:
__netif_tx_lock(nq, smp_processor_id());
in a context outside of softirq context, and thus is susceptible to
deadlock should an interrupt occur.
Disable IRQs around the call to txq_deinit() to avoid this issue.
Hmm, I would use __netif_tx_lock_bh()/__netif_tx_unlock_bh() in
txq_reclaim() instead...