With the new driver, the system hung when executing ifconfig for the
second adapter. This suggested that comparing speedo_open() in the
two drivers might be helpful. Moving request_irq() earlier removed
the problem in my system. It was enough to move it above mdio_read()
(the patch at the end of this message; in my case sp->phy[0] is
0x4701 and mdio_read() is called).
I don't understand why moving request_irq() earlier helps but I hope
someone can find the reason and the proper fix.
Kai
-----------------------------------8<------------------------------------
--- /source/linux/drivers/net/eepro100.c Tue Jan 19 22:26:22 1999
+++ linux/drivers/net/eepro100.c Sun Jan 31 10:08:36 1999
@@ -842,9 +842,6 @@
wait_for_cmd_done(ioaddr + SCBCmd);
outw(CU_DUMPSTATS, ioaddr + SCBCmd);
- /* No need to wait for the command unit to accept here. */
- if ((sp->phy[0] & 0x8000) == 0)
- mdio_read(ioaddr, sp->phy[0] & 0x1f, 0);
/*
* Request the IRQ last, after we have set up all data structures.
@@ -854,6 +851,10 @@
"Intel EtherExpress Pro 10/100 Ethernet", dev)) {
return -EAGAIN;
}
+
+ /* No need to wait for the command unit to accept here. */
+ if ((sp->phy[0] & 0x8000) == 0)
+ mdio_read(ioaddr, sp->phy[0] & 0x1f, 0);
MOD_INC_USE_COUNT;
--------------------------------------8<-------------------------------------
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/