[PATCH] e100 locking up netconsole.

From: Steven Rostedt
Date: Sat Jan 22 2005 - 20:54:49 EST


I'm currently working with Ingo's RT patched kernel, but I believe this
affects the mainline too.

If the transmit buffer of the e100 overflowed, then the system would
hang. This was caused because the e100 driver would stop the queue, and
find_skb in netpoll.c would then loop forever. This is because the e100
net_poll would never start the queue again after the transmits have
completed.

For those that use the e100 and netconsole, all you need to do is a
sysreq 't' to lock up the system.

Here's the patch: (from Ingo's linux-2.6.11-rc2-V0.7.36-02, but should
be OK with 2.6.11-rc2)


Index: drivers/net/e100.c
===================================================================
--- drivers/net/e100.c (revision 60)
+++ drivers/net/e100.c (working copy)
@@ -1630,6 +1630,7 @@
struct nic *nic = netdev_priv(netdev);
e100_disable_irq(nic);
e100_intr(nic->pdev->irq, netdev, NULL);
+ e100_tx_clean(nic);
e100_enable_irq(nic);
}
#endif



-- Steve


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/