| From 499e122e27fba6131667254b95b718160c902346 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 22 May 2021 20:02:46 +0800 |
| Subject: net: ftgmac100: add missing error return code in ftgmac100_probe() |
| |
| From: Yang Yingliang <yangyingliang@huawei.com> |
| |
| [ Upstream commit 52af13a41489d7bbc1932d17583eff6e5fffc820 ] |
| |
| The variables will be free on path err_phy_connect, it should |
| return error code, or it will cause double free when calling |
| ftgmac100_remove(). |
| |
| Fixes: bd466c3fb5a4 ("net/faraday: Support NCSI mode") |
| Fixes: 39bfab8844a0 ("net: ftgmac100: Add support for DT phy-handle property") |
| Reported-by: Hulk Robot <hulkci@huawei.com> |
| Signed-off-by: Yang Yingliang <yangyingliang@huawei.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/faraday/ftgmac100.c | 6 +++++- |
| 1 file changed, 5 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c |
| index 4050f81f788c..2c06cdcd3e75 100644 |
| --- a/drivers/net/ethernet/faraday/ftgmac100.c |
| +++ b/drivers/net/ethernet/faraday/ftgmac100.c |
| @@ -1821,14 +1821,17 @@ static int ftgmac100_probe(struct platform_device *pdev) |
| if (np && of_get_property(np, "use-ncsi", NULL)) { |
| if (!IS_ENABLED(CONFIG_NET_NCSI)) { |
| dev_err(&pdev->dev, "NCSI stack not enabled\n"); |
| + err = -EINVAL; |
| goto err_ncsi_dev; |
| } |
| |
| dev_info(&pdev->dev, "Using NCSI interface\n"); |
| priv->use_ncsi = true; |
| priv->ndev = ncsi_register_dev(netdev, ftgmac100_ncsi_handler); |
| - if (!priv->ndev) |
| + if (!priv->ndev) { |
| + err = -EINVAL; |
| goto err_ncsi_dev; |
| + } |
| } else if (np && of_get_property(np, "phy-handle", NULL)) { |
| struct phy_device *phy; |
| |
| @@ -1836,6 +1839,7 @@ static int ftgmac100_probe(struct platform_device *pdev) |
| &ftgmac100_adjust_link); |
| if (!phy) { |
| dev_err(&pdev->dev, "Failed to connect to phy\n"); |
| + err = -EINVAL; |
| goto err_setup_mdio; |
| } |
| |
| -- |
| 2.30.2 |
| |