summaryrefslogtreecommitdiff
path: root/target/linux/ar71xx/files/arch
diff options
context:
space:
mode:
authorGabor Juhos <juhosg@openwrt.org>2009-01-26 14:55:09 +0000
committerGabor Juhos <juhosg@openwrt.org>2009-01-26 14:55:09 +0000
commit6bea544949ce683dfb1d95bbc8510a397e0e1dd2 (patch)
treeb4b53c8d336e486d6cd4b5c697402f8dc5f679e1 /target/linux/ar71xx/files/arch
parenta43685367ef84a5579aae53ceb33797e6209a43d (diff)
downloadmtk-20170518-6bea544949ce683dfb1d95bbc8510a397e0e1dd2.zip
mtk-20170518-6bea544949ce683dfb1d95bbc8510a397e0e1dd2.tar.gz
mtk-20170518-6bea544949ce683dfb1d95bbc8510a397e0e1dd2.tar.bz2
move random MAC address generation into the platform initialization code
SVN-Revision: 14204
Diffstat (limited to 'target/linux/ar71xx/files/arch')
-rw-r--r--target/linux/ar71xx/files/arch/mips/ar71xx/platform.c12
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 ef70867..a01aecb 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++;