projects
/
openwrt
/
svn-archive
/
archive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
6dcaed2
)
[ar71xx] move random MAC address generation into the platform initialization code
author
Gabor Juhos
<juhosg@openwrt.org>
Mon, 26 Jan 2009 14:55:09 +0000
(14:55 +0000)
committer
Gabor Juhos
<juhosg@openwrt.org>
Mon, 26 Jan 2009 14:55:09 +0000
(14:55 +0000)
SVN-Revision: 14204
target/linux/ar71xx/files/arch/mips/ar71xx/platform.c
patch
|
blob
|
history
target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
patch
|
blob
|
history
target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c
patch
|
blob
|
history
diff --git
a/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c
b/target/linux/ar71xx/files/arch/mips/ar71xx/platform.c
index ef70867a2b7cdbb8ca4e1acc045235051036466e..a01aecbd99ce2b562569ea6dc55ff555e776cf8b 100644
(file)
--- 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/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>
#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;
}
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++;
platform_device_register(pdev);
ar71xx_eth_instance++;
diff --git
a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
index 2db35ec12e0c4733b8cd7cc5fb5cac37cefb979c..2bbc7486e21f06d95a9b7222096f46e86ac1150f 100644
(file)
--- a/
target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
+++ b/
target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx.h
@@
-38,7
+38,7
@@
#define ETH_FCS_LEN 4
#define AG71XX_DRV_NAME "ag71xx"
#define ETH_FCS_LEN 4
#define AG71XX_DRV_NAME "ag71xx"
-#define AG71XX_DRV_VERSION "0.5.1
6
"
+#define AG71XX_DRV_VERSION "0.5.1
7
"
#define AG71XX_NAPI_WEIGHT 64
#define AG71XX_OOM_REFILL (1 + HZ/10)
#define AG71XX_NAPI_WEIGHT 64
#define AG71XX_OOM_REFILL (1 + HZ/10)
diff --git
a/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c
b/target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c
index 58e3b115189804bb37a1373e03e6228c728d8e08..8921639ab89eec4e0ee3e36e08f992c2c75ead58 100644
(file)
--- a/
target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c
+++ b/
target/linux/ar71xx/files/drivers/net/ag71xx/ag71xx_main.c
@@
-868,16
+868,9
@@
static int __init ag71xx_probe(struct platform_device *pdev)
ag->oom_timer.data = (unsigned long) dev;
ag->oom_timer.function = ag71xx_oom_timer_handler;
ag->oom_timer.data = (unsigned long) dev;
ag->oom_timer.function = ag71xx_oom_timer_handler;
-
netif_napi_add(dev, &ag->napi, ag71xx_poll, AG71XX_NAPI_WEIGHT
);
+
memcpy(dev->dev_addr, pdata->mac_addr, ETH_ALEN
);
- if (is_valid_ether_addr(pdata->mac_addr))
- memcpy(dev->dev_addr, pdata->mac_addr, ETH_ALEN);
- else {
- dev->dev_addr[0] = 0xde;
- dev->dev_addr[1] = 0xad;
- get_random_bytes(&dev->dev_addr[2], 3);
- dev->dev_addr[5] = pdev->id & 0xff;
- }
+ netif_napi_add(dev, &ag->napi, ag71xx_poll, AG71XX_NAPI_WEIGHT);
err = register_netdev(dev);
if (err) {
err = register_netdev(dev);
if (err) {