From 079c20aa182c6b623d49e1f375e022dedac7373c Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Fri, 13 Aug 2021 20:03:21 +0200 Subject: [PATCH 04/11] SSDK: dts: fix of_get_mac_address() Recently OpenWrt backported the updated of_get_mac_address() function which returns and error code instead. So, patch the SSDK to use it and fix the compilation error. Signed-off-by: Robert Marko --- src/init/ssdk_dts.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) --- a/src/init/ssdk_dts.c +++ b/src/init/ssdk_dts.c @@ -921,8 +921,9 @@ static void ssdk_dt_parse_intf_mac(void) { struct device_node *dp_node = NULL; a_uint32_t dp = 0; - a_uint8_t *maddr = NULL; + u8 maddr[ETH_ALEN]; char dp_name[8] = {0}; + int ret; for (dp = 1; dp <= SSDK_MAX_NR_ETH; dp++) { snprintf(dp_name, sizeof(dp_name), "dp%d", dp); @@ -930,11 +931,11 @@ static void ssdk_dt_parse_intf_mac(void) if (!dp_node) { continue; } - maddr = (a_uint8_t *)of_get_mac_address(dp_node); + ret = of_get_mac_address(dp_node, maddr); #if (LINUX_VERSION_CODE < KERNEL_VERSION(5, 0, 0)) if (maddr && is_valid_ether_addr(maddr)) { #else - if (!IS_ERR(maddr) && is_valid_ether_addr(maddr)) { + if (!ret && is_valid_ether_addr(maddr)) { #endif ssdk_dt_global.num_intf_mac++; ether_addr_copy(ssdk_dt_global.intf_mac[dp-1].uc, maddr);