PCI: cadence: Fix cdns_pcie_{host|ep}_setup() error path
authorKishon Vijay Abraham I <kishon@ti.com>
Wed, 22 Jul 2020 11:03:04 +0000 (16:33 +0530)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Mon, 27 Jul 2020 14:46:15 +0000 (15:46 +0100)
commit bd22885aa188 ("PCI: cadence: Refactor driver to use as a core
library") while refactoring the Cadence PCIe driver to be used as
library, removed pm_runtime_get_sync() from cdns_pcie_ep_setup()
and cdns_pcie_host_setup() but missed to remove the corresponding
pm_runtime_put_sync() in the error path. Fix it here.

Link: https://lore.kernel.org/r/20200722110317.4744-3-kishon@ti.com
Fixes: bd22885aa188 ("PCI: cadence: Refactor driver to use as a core library")
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Rob Herring <robh@kernel.org>
drivers/pci/controller/cadence/pcie-cadence-ep.c
drivers/pci/controller/cadence/pcie-cadence-host.c

index 1c15c8352125efaf3428ad1a6f44454cf710afa3..4a829ccff7d0b10c6bfadb2799068185c304b890 100644 (file)
@@ -8,7 +8,6 @@
 #include <linux/of.h>
 #include <linux/pci-epc.h>
 #include <linux/platform_device.h>
-#include <linux/pm_runtime.h>
 #include <linux/sizes.h>
 
 #include "pcie-cadence.h"
@@ -440,8 +439,7 @@ int cdns_pcie_ep_setup(struct cdns_pcie_ep *ep)
        epc = devm_pci_epc_create(dev, &cdns_pcie_epc_ops);
        if (IS_ERR(epc)) {
                dev_err(dev, "failed to create epc device\n");
-               ret = PTR_ERR(epc);
-               goto err_init;
+               return PTR_ERR(epc);
        }
 
        epc_set_drvdata(epc, ep);
@@ -453,7 +451,7 @@ int cdns_pcie_ep_setup(struct cdns_pcie_ep *ep)
                               resource_size(pcie->mem_res), PAGE_SIZE);
        if (ret < 0) {
                dev_err(dev, "failed to initialize the memory space\n");
-               goto err_init;
+               return ret;
        }
 
        ep->irq_cpu_addr = pci_epc_mem_alloc_addr(epc, &ep->irq_phys_addr,
@@ -472,8 +470,5 @@ int cdns_pcie_ep_setup(struct cdns_pcie_ep *ep)
  free_epc_mem:
        pci_epc_mem_exit(epc);
 
- err_init:
-       pm_runtime_put_sync(dev);
-
        return ret;
 }
index 2f599eb62bcfd5547d0adf4681c15f41f9f7ba1f..61161d2de96faf6078b24bcf201deef0fad0a5c7 100644 (file)
@@ -8,7 +8,6 @@
 #include <linux/of_address.h>
 #include <linux/of_pci.h>
 #include <linux/platform_device.h>
-#include <linux/pm_runtime.h>
 
 #include "pcie-cadence.h"
 
@@ -474,7 +473,7 @@ int cdns_pcie_host_setup(struct cdns_pcie_rc *rc)
 
        ret = cdns_pcie_host_init(dev, &resources, rc);
        if (ret)
-               goto err_init;
+               return ret;
 
        list_splice_init(&resources, &bridge->windows);
        bridge->dev.parent = dev;
@@ -492,8 +491,5 @@ int cdns_pcie_host_setup(struct cdns_pcie_rc *rc)
  err_host_probe:
        pci_free_resource_list(&resources);
 
- err_init:
-       pm_runtime_put_sync(dev);
-
        return ret;
 }