diff options
| author | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-01-26 14:55:09 +0000 | 
|---|---|---|
| committer | juhosg <juhosg@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2009-01-26 14:55:09 +0000 | 
| commit | 03b0188081ed8721825de822daf9c6a26bc253cf (patch) | |
| tree | 4c39da6efb6ce332ca8a11f0eeee16e789664400 /target/linux/ar71xx/files/arch/mips | |
| parent | d66ff4b45806e6478e3ef2297f26b940d01ecfe7 (diff) | |
[ar71xx] move random MAC address generation into the platform initialization code
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14204 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ar71xx/files/arch/mips')
| -rw-r--r-- | target/linux/ar71xx/files/arch/mips/ar71xx/platform.c | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c b/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c index ef70867a2..a01aecbd9 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c @@ -15,6 +15,7 @@  #include <linux/init.h>  #include <linux/delay.h>  #include <linux/dma-mapping.h> +#include <linux/etherdevice.h>  #include <linux/platform_device.h>  #include <linux/serial_8250.h>  #include <linux/ath9k_platform.h> @@ -456,8 +457,15 @@ void __init ar71xx_add_device_eth(unsigned int id)  		break;  	} -	memcpy(pdata->mac_addr, ar71xx_mac_base, ETH_ALEN); -	pdata->mac_addr[5] += ar71xx_eth_instance; +	if (is_valid_ether_addr(ar71xx_mac_base)) { +		memcpy(pdata->mac_addr, ar71xx_mac_base, ETH_ALEN); +		pdata->mac_addr[5] += ar71xx_eth_instance; +	} else { +		random_ether_addr(pdata->mac_addr); +		printk(KERN_DEBUG +			"ar71xx: using random MAC address for eth%d\n", +			ar71xx_eth_instance); +	}  	platform_device_register(pdev);  	ar71xx_eth_instance++; | 
