diff -Naur -X /g/g/lib/dontdiff /spare/vanilla/linux-2.4.18-pre9/drivers/net/eepro100.c linux_2_4/drivers/net/eepro100.c --- /spare/vanilla/linux-2.4.18-pre9/drivers/net/eepro100.c Wed Feb 6 04:23:13 2002 +++ linux_2_4/drivers/net/eepro100.c Thu Feb 7 13:20:50 2002 @@ -833,6 +833,10 @@ sp->phy[0] = eeprom[6]; sp->phy[1] = eeprom[7]; sp->rx_bug = (eeprom[3] & 0x03) == 3 ? 0 : 1; + if (((pdev->device > 0x1030 && (pdev->device < 0x1039))) + || (pdev->device == 0x2449)) { + sp->chip_id = 1; + } if (sp->rx_bug) printk(KERN_INFO " Receiver lock-up workaround activated.\n"); @@ -1099,9 +1103,9 @@ mdio_read(ioaddr, phy_num, 1); /* If link beat has returned... */ if (mdio_read(ioaddr, phy_num, 1) & 0x0004) - dev->flags |= IFF_RUNNING; + netif_carrier_on(dev); else - dev->flags &= ~IFF_RUNNING; + netif_carrier_off(dev); } } if (speedo_debug > 3) { @@ -1375,7 +1379,7 @@ /* workaround for hardware bug on 10 mbit half duplex */ - if ((sp->partner==0) && (sp->chip_id==1)) { + if ((sp->partner == 0) || (sp->chip_id == 1)) { wait_for_cmd_done(ioaddr + SCBCmd); outb(0 , ioaddr + SCBCmd); }