diff options
| author | Zhijian Han <hanzhijian1991@gmail.com> | 2026-09-04 09:23:07 +0800 |
|---|---|---|
| committer | Bjorn Helgaas <bhelgaas@google.com> | 2026-09-22 12:14:53 -0500 |
| commit | 1e184f38851ff6fac0b72bfb7f51db47ed6f257f (patch) | |
| tree | 6f6fff4c88e6bf22d52a0a285e517700dcfd6988 /scripts/basic/split-include.c | |
| parent | 0031f76f73b86f711d0e4e95a967aea1821fb867 (diff) | |
| download | linux-1e184f38851ff6fac0b72bfb7f51db47ed6f257f.tar.gz linux-1e184f38851ff6fac0b72bfb7f51db47ed6f257f.zip | |
PCI: imx6: Fix resource leaks in probe error paths
imx_pcie_probe() leaks both pwrctrl devices and power domains on failure:
- imx_pcie_attach_pd() attaches the "pcie" and "pcie_phy" power domains
and adds device links to them, but nothing detaches the domains or
removes the links on probe failure or deferral, so they leak.
- A failure of devm_pm_runtime_set_active_enabled() returns directly
without destroying the pwrctrl devices.
- A partial failure inside imx_pcie_attach_pd() leaks the power domains
that were already attached.
Add imx_pcie_detach_pd_action() to remove the device links and detach the
power domains in reverse order of acquisition and register it with
devm_add_action_or_reset() so they are released automatically on probe
failure.
Fixes: 2c5768344f88 ("PCI: imx6: Move pci_pwrctrl_create_devices() to imx_pcie_probe()")
Reported-by: sashiko-bot@kernel.org
Link: https://lore.kernel.org/all/20260822013640.182C01F000E9@smtp.kernel.org/
Signed-off-by: Zhijian Han <hanzhijian1991@gmail.com>
[mani: removed the imx_pcie_detach_pd() helper]
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@oss.qualcomm.com>
[bhelgaas: update commit log to match inlining of imx_pcie_detach_pd() into
imx_pcie_detach_pd_action()]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Link: https://patch.msgid.link/20260904012307.3434449-1-hanzhijian1991@gmail.com
Diffstat (limited to 'scripts/basic/split-include.c')
0 files changed, 0 insertions, 0 deletions
