drivers/pci/controller/dwc/pcie-stm32.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-)
An error handling path is already available, so use it instead of hand
writing the same code.
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
drivers/pci/controller/dwc/pcie-stm32.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/pci/controller/dwc/pcie-stm32.c b/drivers/pci/controller/dwc/pcie-stm32.c
index 964fa6f674c8..96a5fb893af4 100644
--- a/drivers/pci/controller/dwc/pcie-stm32.c
+++ b/drivers/pci/controller/dwc/pcie-stm32.c
@@ -287,18 +287,16 @@ static int stm32_pcie_probe(struct platform_device *pdev)
ret = pm_runtime_set_active(dev);
if (ret < 0) {
- clk_disable_unprepare(stm32_pcie->clk);
- stm32_remove_pcie_port(stm32_pcie);
- return dev_err_probe(dev, ret, "Failed to activate runtime PM\n");
+ dev_err_probe(dev, ret, "Failed to activate runtime PM\n");
+ goto err_disable_clk;
}
pm_runtime_no_callbacks(dev);
ret = devm_pm_runtime_enable(dev);
if (ret < 0) {
- clk_disable_unprepare(stm32_pcie->clk);
- stm32_remove_pcie_port(stm32_pcie);
- return dev_err_probe(dev, ret, "Failed to enable runtime PM\n");
+ dev_err_probe(dev, ret, "Failed to enable runtime PM\n");
+ goto err_disable_clk;
}
ret = dw_pcie_host_init(&stm32_pcie->pci.pp);
--
2.51.0
On Mon, Sep 29, 2025 at 08:19:30PM +0200, Christophe JAILLET wrote:
> An error handling path is already available, so use it instead of hand
> writing the same code.
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
The stm32 driver hasn't been merged upstream yet, so I squashed this
into it:
https://git.kernel.org/cgit/linux/kernel/git/pci/pci.git/commit/?id=fd486e67e88c
Thank you!
> ---
> drivers/pci/controller/dwc/pcie-stm32.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/pci/controller/dwc/pcie-stm32.c b/drivers/pci/controller/dwc/pcie-stm32.c
> index 964fa6f674c8..96a5fb893af4 100644
> --- a/drivers/pci/controller/dwc/pcie-stm32.c
> +++ b/drivers/pci/controller/dwc/pcie-stm32.c
> @@ -287,18 +287,16 @@ static int stm32_pcie_probe(struct platform_device *pdev)
>
> ret = pm_runtime_set_active(dev);
> if (ret < 0) {
> - clk_disable_unprepare(stm32_pcie->clk);
> - stm32_remove_pcie_port(stm32_pcie);
> - return dev_err_probe(dev, ret, "Failed to activate runtime PM\n");
> + dev_err_probe(dev, ret, "Failed to activate runtime PM\n");
> + goto err_disable_clk;
> }
>
> pm_runtime_no_callbacks(dev);
>
> ret = devm_pm_runtime_enable(dev);
> if (ret < 0) {
> - clk_disable_unprepare(stm32_pcie->clk);
> - stm32_remove_pcie_port(stm32_pcie);
> - return dev_err_probe(dev, ret, "Failed to enable runtime PM\n");
> + dev_err_probe(dev, ret, "Failed to enable runtime PM\n");
> + goto err_disable_clk;
> }
>
> ret = dw_pcie_host_init(&stm32_pcie->pci.pp);
> --
> 2.51.0
>
>
Hi Christophe,
On 9/29/25 20:19, Christophe JAILLET wrote:
> An error handling path is already available, so use it instead of hand
> writing the same code.
This fix is pending:
https://lore.kernel.org/linux-pci/0b8b8cde-d273-442c-8537-3fa95885476b@foss.st.com/
Bjorn, Manivannan, gentle ping
thank you
Christian
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
> drivers/pci/controller/dwc/pcie-stm32.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/pci/controller/dwc/pcie-stm32.c b/drivers/pci/controller/dwc/pcie-stm32.c
> index 964fa6f674c8..96a5fb893af4 100644
> --- a/drivers/pci/controller/dwc/pcie-stm32.c
> +++ b/drivers/pci/controller/dwc/pcie-stm32.c
> @@ -287,18 +287,16 @@ static int stm32_pcie_probe(struct platform_device *pdev)
>
> ret = pm_runtime_set_active(dev);
> if (ret < 0) {
> - clk_disable_unprepare(stm32_pcie->clk);
> - stm32_remove_pcie_port(stm32_pcie);
> - return dev_err_probe(dev, ret, "Failed to activate runtime PM\n");
> + dev_err_probe(dev, ret, "Failed to activate runtime PM\n");
> + goto err_disable_clk;
> }
>
> pm_runtime_no_callbacks(dev);
>
> ret = devm_pm_runtime_enable(dev);
> if (ret < 0) {
> - clk_disable_unprepare(stm32_pcie->clk);
> - stm32_remove_pcie_port(stm32_pcie);
> - return dev_err_probe(dev, ret, "Failed to enable runtime PM\n");
> + dev_err_probe(dev, ret, "Failed to enable runtime PM\n");
> + goto err_disable_clk;
> }
>
> ret = dw_pcie_host_init(&stm32_pcie->pci.pp);
© 2016 - 2026 Red Hat, Inc.