stmmac: dwmac-loongson: fix missing pci_disable_device() in loongson_dwmac_probe()
authorYang Yingliang <yangyingliang@huawei.com>
Tue, 8 Nov 2022 11:46:46 +0000 (19:46 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 16 Nov 2022 08:58:22 +0000 (09:58 +0100)
[ Upstream commit fe5b3ce8b4377e543960220f539b989a927afd8a ]

Add missing pci_disable_device() in the error path in loongson_dwmac_probe().

Fixes: 30bba69d7db4 ("stmmac: pci: Add dwmac support for Loongson")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c

index b18f1e2..bf6e9f3 100644 (file)
@@ -97,7 +97,7 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id
                        continue;
                ret = pcim_iomap_regions(pdev, BIT(0), pci_name(pdev));
                if (ret)
-                       return ret;
+                       goto err_disable_device;
                break;
        }
 
@@ -108,7 +108,8 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id
        phy_mode = device_get_phy_mode(&pdev->dev);
        if (phy_mode < 0) {
                dev_err(&pdev->dev, "phy_mode not found\n");
-               return phy_mode;
+               ret = phy_mode;
+               goto err_disable_device;
        }
 
        plat->phy_interface = phy_mode;
@@ -149,6 +150,8 @@ static int loongson_dwmac_probe(struct pci_dev *pdev, const struct pci_device_id
 
 err_disable_msi:
        pci_disable_msi(pdev);
+err_disable_device:
+       pci_disable_device(pdev);
        return ret;
 }