From 8b321d45be868fd36c8f00166e5d077e497609e6 Mon Sep 17 00:00:00 2001 From: Daniel Gimpelevich Date: Fri, 27 May 2016 15:30:47 -0700 Subject: [PATCH] lantiq: Fix macaddr-setting code on DGN3500 and possibly other devices Signed-off-by: Daniel Gimpelevich --- ...35-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target/linux/lantiq/patches-4.4/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch b/target/linux/lantiq/patches-4.4/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch index 25852e2cca..91a884d2ea 100644 --- a/target/linux/lantiq/patches-4.4/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch +++ b/target/linux/lantiq/patches-4.4/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch @@ -379,7 +379,7 @@ Signed-off-by: John Crispin + eth_mac_set = mac_pton(str, eth_mac); + return !eth_mac_set; +} -+__setup("ethaddr=", setup_ethaddr); ++early_param("ethaddr", setup_ethaddr); + +int __init of_eth_mac_probe(struct platform_device *pdev) +{ @@ -620,10 +620,10 @@ Signed-off-by: John Crispin goto err_hw; - memcpy(&mac, &priv->pldata->mac, sizeof(struct sockaddr)); -+ if (priv->mac) ++ memcpy(&mac.sa_data, ltq_get_eth_mac(), ETH_ALEN); ++ ++ if (priv->mac && !is_valid_ether_addr(mac.sa_data)) + memcpy(&mac.sa_data, priv->mac, ETH_ALEN); -+ else -+ memcpy(&mac.sa_data, ltq_get_eth_mac(), ETH_ALEN); + if (!is_valid_ether_addr(mac.sa_data)) { pr_warn("etop: invalid MAC, using random\n");