aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0399-staging-fsl_ppfe-eth-Enhance-error-checking-in-platf.patch
blob: a42e9aa354a69b5cb9613af0735381fcaafa76a0 (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
From 1ccc18ca96d8a824f2af45d1046d23ccdb90f3df Mon Sep 17 00:00:00 2001
From: Anji Jagarlmudi <anji.jagarlmudi@nxp.com>
Date: Wed, 8 Jan 2020 12:18:40 +0530
Subject: [PATCH] staging: fsl_ppfe/eth: Enhance error checking in platform
 probe

Fix the kernel crash when MAC addr is not passed in dtb.

Signed-off-by: Anji Jagarlmudi <anji.jagarlmudi@nxp.com>
---
 drivers/staging/fsl_ppfe/pfe_ls1012a_platform.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

--- a/drivers/staging/fsl_ppfe/pfe_ls1012a_platform.c
+++ b/drivers/staging/fsl_ppfe/pfe_ls1012a_platform.c
@@ -29,15 +29,19 @@ static int pfe_get_gemac_if_properties(s
 	int size;
 	int phy_id = 0;
 	const u32 *addr;
-	const void *mac_addr;
+	const u8 *mac_addr;
 
 	addr = of_get_property(gem, "reg", &size);
-	port = be32_to_cpup(addr);
+	if (addr)
+		port = be32_to_cpup(addr);
+	else
+		goto err;
+
 
 	pdata->ls1012a_eth_pdata[port].gem_id = port;
 
 	mac_addr = of_get_mac_address(gem);
-	if (mac_addr) {
+	if (!IS_ERR_OR_NULL(mac_addr)) {
 		memcpy(pdata->ls1012a_eth_pdata[port].mac_addr, mac_addr,
 		       ETH_ALEN);
 	}