I tried Marcelo's 2.4.21-pre2 and the driver fails the self-test,
then dies in an unserviced interrupt storm. An obvious patch
seems to fix the problem here.
Amazingly enough, the driver works in RH 2.4.18-14 (e100 2.1.6-k1),
but if I take the same 2.1.6-k1 and implant it into Marcelo tree,
everything dies as before. Something is fishy here.
-- Pete
diff -urN -X dontdiff linux-2.4.21-pre2/drivers/net/e100/e100_main.c linux-2.4.21-pre2-usb/drivers/net/e100/e100_main.c
--- linux-2.4.21-pre2/drivers/net/e100/e100_main.c 2002-12-19 19:50:58.000000000 -0800
+++ linux-2.4.21-pre2-usb/drivers/net/e100/e100_main.c 2002-12-20 00:07:36.000000000 -0800
@@ -2288,6 +2288,8 @@
/* initialize the nic state before running test */
e100_sw_reset(bdp, PORT_SOFTWARE_RESET);
+ e100_dis_intr(bdp);
+
/* Setup the address of the self_test area */
selftest_cmd = bdp->selftest_phys;
@@ -2302,9 +2304,9 @@
writel(selftest_cmd, &bdp->scb->scb_port);
readw(&(bdp->scb->scb_status)); /* flushes last write, read-safe */
- /* Wait at least 10 milliseconds for the self-test to complete */
+ /* Wait at least 20 milliseconds for the self-test to complete */
set_current_state(TASK_UNINTERRUPTIBLE);
- schedule_timeout(HZ / 100 + 1);
+ schedule_timeout(HZ / 50 + 1);
/* disable interrupts since the're now enabled */
e100_dis_intr(bdp);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/