From: Daniel Gimpelevich Date: Fri, 27 May 2016 22:30:47 +0000 (-0700) Subject: lantiq: Fix macaddr-setting code on DGN3500 and possibly other devices X-Git-Tag: v17.01.0-rc1~2590 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=8b321d45be868fd36c8f00166e5d077e497609e6;p=oweals%2Fopenwrt.git lantiq: Fix macaddr-setting code on DGN3500 and possibly other devices Signed-off-by: Daniel Gimpelevich --- 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");