Browse Source

ixp4xx: (Titan Wireless 2662) check for invalid/null MAC before assigning a random one

SVN-Revision: 21825
Alexandros C. Couloumbis 15 years ago
parent
commit
ced9c58145
1 changed files with 11 additions and 4 deletions
  1. 11 4
      target/linux/ixp4xx/patches-2.6.35/520-tw2662_support.patch

+ 11 - 4
target/linux/ixp4xx/patches-2.6.35/520-tw2662_support.patch

@@ -118,7 +118,7 @@
 +subsys_initcall(tw2662_pci_init);
 --- /dev/null
 +++ b/arch/arm/mach-ixp4xx/tw2662-setup.c
-@@ -0,0 +1,208 @@
+@@ -0,0 +1,215 @@
 +/*
 + * arch/arm/mach-ixp4xx/tw2662-setup.c
 + *
@@ -302,15 +302,22 @@
 +static void __init tw2662_init(void)
 +{
 +	ixp4xx_sys_init();
++	int i;
 +
 +	tw2662_flash_resource.start = IXP4XX_EXP_BUS_BASE(0);
 +	tw2662_flash_resource.end =
 +		IXP4XX_EXP_BUS_BASE(0) + ixp4xx_exp_bus_size - 1;
 +
 +	platform_add_devices(tw2662_devices, ARRAY_SIZE(tw2662_devices));
-+	/* hack MACs as most of these boards have a broken eeprom */
-+	random_ether_addr(tw2662_plat_eth[0].hwaddr);
-+	random_ether_addr(tw2662_plat_eth[1].hwaddr);
++
++	for (i = 0; i < 6; i++)
++		if (tw2662_plat_eth[0].hwaddr[i] != 0x00)
++			break;
++	if (i == 6) {
++		/* hack MACs as most of these boards have a broken eeprom */
++		random_ether_addr(tw2662_plat_eth[0].hwaddr);
++		tw2662_plat_eth[1].hwaddr = (tw2662_plat_eth[0].hwaddr + 1);
++	}
 +
 +}
 +