|
@@ -5905,11 +5905,19 @@ static int __devinit nv_probe(struct pci_dev *pci_dev, const struct pci_device_i
|
|
|
goto out_error;
|
|
|
}
|
|
|
|
|
|
+ netif_carrier_off(dev);
|
|
|
+
|
|
|
+ /* Some NICs freeze when TX pause is enabled while NIC is
|
|
|
+ * down, and this stays across warm reboots. The sequence
|
|
|
+ * below should be enough to recover from that state.
|
|
|
+ */
|
|
|
+ nv_update_pause(dev, 0);
|
|
|
+ nv_start_tx(dev);
|
|
|
+ nv_stop_tx(dev);
|
|
|
+
|
|
|
if (id->driver_data & DEV_HAS_VLAN)
|
|
|
nv_vlan_mode(dev, dev->features);
|
|
|
|
|
|
- netif_carrier_off(dev);
|
|
|
-
|
|
|
dev_info(&pci_dev->dev, "ifname %s, PHY OUI 0x%x @ %d, addr %pM\n",
|
|
|
dev->name, np->phy_oui, np->phyaddr, dev->dev_addr);
|
|
|
|