aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/qca-ssdk/patches/0004-SSDK-dts-fix-of_get_mac_address.patch
blob: 1dd948643f2028e33ab809d5fa3eeba78a79edea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
From 079c20aa182c6b623d49e1f375e022dedac7373c Mon Sep 17 00:00:00 2001
From: Robert Marko <robimarko@gmail.com>
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 <robimarko@gmail.com>
---
 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);