Commit 9030c0d2 authored by Francois Romieu's avatar Francois Romieu Committed by Jeff Garzik

8139cp: implement the missing dev->tx_timeout

Signed-off-by: default avatarMika Lansirinne <mika.lansirinne@stonesoft.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent c97884b5
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
TODO: TODO:
* Test Tx checksumming thoroughly * Test Tx checksumming thoroughly
* Implement dev->tx_timeout
Low priority TODO: Low priority TODO:
* Complete reset on PciErr * Complete reset on PciErr
...@@ -1218,6 +1217,30 @@ static int cp_close (struct net_device *dev) ...@@ -1218,6 +1217,30 @@ static int cp_close (struct net_device *dev)
return 0; return 0;
} }
static void cp_tx_timeout(struct net_device *dev)
{
struct cp_private *cp = netdev_priv(dev);
unsigned long flags;
int rc;
printk(KERN_WARNING "%s: Transmit timeout, status %2x %4x %4x %4x\n",
dev->name, cpr8(Cmd), cpr16(CpCmd),
cpr16(IntrStatus), cpr16(IntrMask));
spin_lock_irqsave(&cp->lock, flags);
cp_stop_hw(cp);
cp_clean_rings(cp);
rc = cp_init_rings(cp);
cp_start_hw(cp);
netif_wake_queue(dev);
spin_unlock_irqrestore(&cp->lock, flags);
return;
}
#ifdef BROKEN #ifdef BROKEN
static int cp_change_mtu(struct net_device *dev, int new_mtu) static int cp_change_mtu(struct net_device *dev, int new_mtu)
{ {
...@@ -1923,10 +1946,8 @@ static int cp_init_one (struct pci_dev *pdev, const struct pci_device_id *ent) ...@@ -1923,10 +1946,8 @@ static int cp_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
dev->change_mtu = cp_change_mtu; dev->change_mtu = cp_change_mtu;
#endif #endif
dev->ethtool_ops = &cp_ethtool_ops; dev->ethtool_ops = &cp_ethtool_ops;
#if 0
dev->tx_timeout = cp_tx_timeout; dev->tx_timeout = cp_tx_timeout;
dev->watchdog_timeo = TX_TIMEOUT; dev->watchdog_timeo = TX_TIMEOUT;
#endif
#if CP_VLAN_TAG_USED #if CP_VLAN_TAG_USED
dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment