On Sat, Apr 19, 2025 at 09:30:58PM +0800, Hans Zhang wrote: > If the call to pci_host_probe() in cdns_pcie_host_setup() > fails, PM runtime count is decremented in the error path using > pm_runtime_put_sync().But the runtime count is not incremented by this > driver, but only by the callers (cdns_plat_pcie_probe/j721e_pcie_probe). > And the callers also decrement theruntime PM count in their error path. > So this leads to the below warning from the PM core: > > runtime PM usage count underflow! > > So fix it by getting rid of pm_runtime_put_sync() in the error path and > directly return the errno. > > Fixes: 1b79c5284439 ("PCI: cadence: Add host driver for Cadence PCIe controller") > This is not the correct Fixes commit. In fact it took me a while to find the correct one. This exact same issue was already fixed by commit, 19abcd790b51 ("PCI: cadence: Fix cdns_pcie_{host|ep}_setup() error path"). But then, this bug got reintroduced while fixing the merge conflict in: 49e427e6bdd1 ("Merge branch 'pci/host-probe-refactor'") I will change the tag while applying. - Mani > Signed-off-by: Hans Zhang <18255117159@xxxxxxx> > --- > drivers/pci/controller/cadence/pcie-cadence-host.c | 11 +---------- > 1 file changed, 1 insertion(+), 10 deletions(-) > > diff --git a/drivers/pci/controller/cadence/pcie-cadence-host.c b/drivers/pci/controller/cadence/pcie-cadence-host.c > index 8af95e9da7ce..741e10a575ec 100644 > --- a/drivers/pci/controller/cadence/pcie-cadence-host.c > +++ b/drivers/pci/controller/cadence/pcie-cadence-host.c > @@ -570,14 +570,5 @@ int cdns_pcie_host_setup(struct cdns_pcie_rc *rc) > if (!bridge->ops) > bridge->ops = &cdns_pcie_host_ops; > > - ret = pci_host_probe(bridge); > - if (ret < 0) > - goto err_init; > - > - return 0; > - > - err_init: > - pm_runtime_put_sync(dev); > - > - return ret; > + return pci_host_probe(bridge); > } > > base-commit: a24588245776dafc227243a01bfbeb8a59bafba9 > -- > 2.25.1 > -- மணிவண்ணன் சதாசிவம்