Commit:     8c754a04ff11a9c1107c134ad5a858e9dc08c1de
Parent:     190a4408ecb577391ea5fbd1f90148a6992a5756
Author:     Chris Snook <[EMAIL PROTECTED]>
AuthorDate: Wed Mar 28 20:51:51 2007 -0400
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Thu Mar 29 08:26:05 2007 -0400

    atl1: save mac address on remove
    Some atl1 boards get their MAC address written directly to the register
    by the BIOS during POST, rather than storing it in EEPROM that's
    accessible to the driver.  If the MAC register on one of these boards
    is changed and then the module is unloaded, the permanent MAC address
    will be forgotten until the box is rebooted.  We should save the
    permanent address during removal if we've been messing with it.
    Signed-off-by: Chris Snook <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
 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 dee3638..8606eac 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)
        adapter = netdev_priv(netdev);
+       /* Some atl1 boards lack persistent storage for their MAC, and get it
+        * from the BIOS during POST.  If we've been messing with the MAC
+        * address, we need to save the permanent one.
+        */
+       if (memcmp(adapter->hw.mac_addr, adapter->hw.perm_mac_addr, ETH_ALEN)) {
+               memcpy(adapter->hw.mac_addr, adapter->hw.perm_mac_addr, 
+               atl1_set_mac_addr(&adapter->hw);
+       }
        iowrite16(0, adapter->hw.hw_addr + REG_GPHY_ENABLE);
        pci_iounmap(pdev, adapter->hw.hw_addr);
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to