diff options
| -rw-r--r-- | drivers/net/atl1/atl1_main.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c index dee3638ad744..8606eac5bec8 100644 --- a/drivers/net/atl1/atl1_main.c +++ b/drivers/net/atl1/atl1_main.c | |||
| @@ -2320,6 +2320,16 @@ static void __devexit atl1_remove(struct pci_dev *pdev) | |||
| 2320 | return; | 2320 | return; |
| 2321 | 2321 | ||
| 2322 | adapter = netdev_priv(netdev); | 2322 | adapter = netdev_priv(netdev); |
| 2323 | |||
| 2324 | /* Some atl1 boards lack persistent storage for their MAC, and get it | ||
| 2325 | * from the BIOS during POST. If we've been messing with the MAC | ||
| 2326 | * address, we need to save the permanent one. | ||
| 2327 | */ | ||
| 2328 | if (memcmp(adapter->hw.mac_addr, adapter->hw.perm_mac_addr, ETH_ALEN)) { | ||
| 2329 | memcpy(adapter->hw.mac_addr, adapter->hw.perm_mac_addr, ETH_ALEN); | ||
| 2330 | atl1_set_mac_addr(&adapter->hw); | ||
| 2331 | } | ||
| 2332 | |||
| 2323 | iowrite16(0, adapter->hw.hw_addr + REG_GPHY_ENABLE); | 2333 | iowrite16(0, adapter->hw.hw_addr + REG_GPHY_ENABLE); |
| 2324 | unregister_netdev(netdev); | 2334 | unregister_netdev(netdev); |
| 2325 | pci_iounmap(pdev, adapter->hw.hw_addr); | 2335 | pci_iounmap(pdev, adapter->hw.hw_addr); |
