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)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 10 Nov 2022 10:03:00 +0000 (11:03 +0100)
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>
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c

index 16915b4..2d480bc 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;
 }