--- /opt/kernel/kernels/linux/drivers/net/eepro100.c Tue Nov 28 02:58:32 2000 +++ linux/drivers/net/eepro100.c Wed Jan 24 16:26:14 2001 @@ -2145,7 +2145,7 @@ { struct net_device *dev = pdev->driver_data; struct speedo_private *sp = (struct speedo_private *)dev->priv; - long ioaddr = dev->base_addr; + long ioaddr = dev->base_addr, flags; /* I'm absolutely uncertain if this part of code may work. The problems are: @@ -2154,12 +2154,19 @@ reinitialization; - serialization with other driver calls. 2000/03/08 SAW */ + outl(PortReset, ioaddr + SCBPort); + udelay(10); outw(SCBMaskAll, ioaddr + SCBCmd); + synchronize_irq(); + spin_lock_irqsave(&sp->lock, flags); speedo_resume(dev); - netif_device_attach(dev); + dev->trans_start = jiffies; sp->rx_mode = -1; + spin_unlock_irqrestore(&sp->lock, flags); + netif_device_attach(dev); sp->flow_ctrl = sp->partner = 0; set_rx_mode(dev); + reset_mii(dev); } #endif /* CONFIG_EEPRO100_PM */ N‹§²æìr¸›yúèšØb²X¬¶Ç§vØ^–)Þº{.nÇ+‰·¥Š{±‘êçzX§¶›¡Ü¨}©ž²Æ zÚ&j:+v‰¨¾«‘êçzZ+>Wš±êÞiÛaxPjØm¶Ÿÿà -»+ƒùd