summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKangjie Lu <kjlu@umn.edu>2019-03-12 02:43:18 -0500
committerBen Hutchings <ben@decadent.org.uk>2019-07-09 22:04:17 +0100
commit1e70758c7e844fe50fc2d0ccbe17d78398f5c6b7 (patch)
treeb636444c95a29c09c32458326c1ba9e30c56abfa
parent0e355850c6a61e8b233017972cf7f431c97d6991 (diff)
downloadlinux-stable-1e70758c7e844fe50fc2d0ccbe17d78398f5c6b7.tar.gz
linux-stable-1e70758c7e844fe50fc2d0ccbe17d78398f5c6b7.tar.bz2
linux-stable-1e70758c7e844fe50fc2d0ccbe17d78398f5c6b7.zip
net: sh_eth: fix a missing check of of_get_phy_mode
commit 035a14e71f27eefa50087963b94cbdb3580d08bf upstream. of_get_phy_mode may fail and return a negative error code; the fix checks the return value of of_get_phy_mode and returns NULL of it fails. Fixes: b356e978e92f ("sh_eth: add device tree support") Signed-off-by: Kangjie Lu <kjlu@umn.edu> Reviewed-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--drivers/net/ethernet/renesas/sh_eth.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/net/ethernet/renesas/sh_eth.c b/drivers/net/ethernet/renesas/sh_eth.c
index b62545b93f3f..07ef09579730 100644
--- a/drivers/net/ethernet/renesas/sh_eth.c
+++ b/drivers/net/ethernet/renesas/sh_eth.c
@@ -2712,12 +2712,16 @@ static struct sh_eth_plat_data *sh_eth_parse_dt(struct device *dev)
struct device_node *np = dev->of_node;
struct sh_eth_plat_data *pdata;
const char *mac_addr;
+ int ret;
pdata = devm_kzalloc(dev, sizeof(*pdata), GFP_KERNEL);
if (!pdata)
return NULL;
- pdata->phy_interface = of_get_phy_mode(np);
+ ret = of_get_phy_mode(np);
+ if (ret < 0)
+ return NULL;
+ pdata->phy_interface = ret;
mac_addr = of_get_mac_address(np);
if (mac_addr)