This driver is freeing skb's from timer context, with local irq's disabled.
It generates warnings from local_bh_enable() because local_bh_enable()
reenables interrupts, exposing the machine to deadlocks.
So use the deferred dev_kfree_skb_irq() instead.
pci_unmap_single(sis_priv->pci_dev,
sis_priv->tx_ring[i].bufptr, skb->len,
PCI_DMA_TODEVICE);
- dev_kfree_skb(skb);
+ dev_kfree_skb_irq(skb);
sis_priv->tx_skbuff[i] = 0;
sis_priv->tx_ring[i].cmdsts = 0;
sis_priv->tx_ring[i].bufptr = 0;