So the low 4 bytes of the MAC address get zero'd on warm reboot for some
reason.
2.6.32 writes the MAC address to the card on shutdown. It calls rtl_rar_set()
which does:
... RTL_W32(MAC0, low); RTL_W32(MAC4, high);
...
And the card loses the 'low' part. Wild guess - perhaps the card wants to have
the high half written first.
Anyway, the writing of the MAC address on shutdown was introduced by the
commit:
commit cc098dc705895f6b0109b7e8e026ac2b8ae1c0a1
Author: Ivan Vecera
Date: Sun Nov 29 23:12:52 2009 -0800
r8169: restore mac addr in rtl8169_remove_one and rtl_shutdown
Gavin, could you test if reverting the commit would fix your problem?
So the low 4 bytes of the MAC address get zero'd on warm reboot for some
RTL_W32( MAC0, low);
RTL_W32( MAC4, high);
reason.
2.6.32 writes the MAC address to the card on shutdown. It calls rtl_rar_set()
which does:
...
...
And the card loses the 'low' part. Wild guess - perhaps the card wants to have
the high half written first.
Anyway, the writing of the MAC address on shutdown was introduced by the
commit:
commit cc098dc705895f6 b0109b7e8e026ac 2b8ae1c0a1
Author: Ivan Vecera
Date: Sun Nov 29 23:12:52 2009 -0800
r8169: restore mac addr in rtl8169_remove_one and rtl_shutdown
Gavin, could you test if reverting the commit would fix your problem?
Putting Ivan to CC... Ivan, any ideas?