diff options
author | Richard Mortimer <richm@oldelvet.org.uk> | 2011-01-06 14:50:30 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-01-06 14:50:30 -0500 |
commit | 4e3dbdb1392a83bd21a6ff8f6bc785495058d37c (patch) | |
tree | fe455c384a1e470b49bf504bc15b9c44ae81504e /drivers/net/cassini.h | |
parent | 2ad0d9d413abc3380fc1d89a9da7f8db59d9746b (diff) |
cassini: Use local-mac-address prom property for Cassini MAC address
Fallback on the local-mac-address prom property if the Cassini device
does not have an address programmed in the VPD ROM. This uses the same
technique as implemented by the sungem driver.
The problem was reported by Frans van Berckel using Debian kernel 2.6.34-7
on Sun Fire V440. udev was assigning a new eth<n> device name on each reboot
because the cassini driver was using a random MAC address.
Fix tested on 2.6.34-7 and 2.6.37 Sun Fire V440. Compile tested against
2.6.36 davem/sparc-2.6.git
Reported-by: Frans van Berckel <fberckel@xs4all.nl>
Tested-by: Frans van Berckel <fberckel@xs4all.nl>
Reviewed-by: Julian Calaby <julian.calaby@gmail.com>
Reviewed-by: Sam Ravnborg <sam@ravnborg.org>
Signed-off-by: Richard Mortimer <richm@oldelvet.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/cassini.h')
-rw-r--r-- | drivers/net/cassini.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/cassini.h b/drivers/net/cassini.h index dbc47878d83b..faf4746a0f3e 100644 --- a/drivers/net/cassini.h +++ b/drivers/net/cassini.h | |||
@@ -2868,6 +2868,9 @@ struct cas { | |||
2868 | dma_addr_t block_dvma, tx_tiny_dvma[N_TX_RINGS]; | 2868 | dma_addr_t block_dvma, tx_tiny_dvma[N_TX_RINGS]; |
2869 | struct pci_dev *pdev; | 2869 | struct pci_dev *pdev; |
2870 | struct net_device *dev; | 2870 | struct net_device *dev; |
2871 | #if defined(CONFIG_OF) | ||
2872 | struct device_node *of_node; | ||
2873 | #endif | ||
2871 | 2874 | ||
2872 | /* Firmware Info */ | 2875 | /* Firmware Info */ |
2873 | u16 fw_load_addr; | 2876 | u16 fw_load_addr; |