[PATCH] PCI: histb: Fix an error handling path in histb_pcie_probe()

From: Christophe JAILLET
Date: Sat Mar 01 2025 - 13:44:25 EST


If an error occurs after a successful phy_init() call, then phy_exit()
should be called.

Add the missing call, as already done in the remove function.

Fixes: bbd11bddb398 ("PCI: hisi: Add HiSilicon STB SoC PCIe controller driver")
Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx>
---
This patch is compile tested only.

It is also completly speculative. Review with care.
---
drivers/pci/controller/dwc/pcie-histb.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/pci/controller/dwc/pcie-histb.c b/drivers/pci/controller/dwc/pcie-histb.c
index 615a0e3e6d7e..63b701881357 100644
--- a/drivers/pci/controller/dwc/pcie-histb.c
+++ b/drivers/pci/controller/dwc/pcie-histb.c
@@ -409,16 +409,22 @@ static int histb_pcie_probe(struct platform_device *pdev)
ret = histb_pcie_host_enable(pp);
if (ret) {
dev_err(dev, "failed to enable host\n");
- return ret;
+ goto err_exit_phy;
}

ret = dw_pcie_host_init(pp);
if (ret) {
dev_err(dev, "failed to initialize host\n");
- return ret;
+ goto err_exit_phy;
}

return 0;
+
+err_exit_phy:
+ if (hipcie->phy)
+ phy_exit(hipcie->phy);
+
+ return ret;
}

static void histb_pcie_remove(struct platform_device *pdev)
--
2.48.1