Messages in this thread Patch in this message | | | Date | Sun, 31 Jan 1999 10:49:45 +0200 (EET) | From | Kai Makisara <> | Subject | System hang with two Intel EtherExpress Pro 100 cards |
| |
Some people have seen their system hung when using two Intel EtherExpress Pro 100 network adapters using the same interrupt. I have experienced the same but found out that with the old (i.e., before 2.1.106?) driver the system did not hang (the system is single PII 400).
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/
| |