summaryrefslogtreecommitdiff
path: root/drivers/pci/remove.c
diff options
context:
space:
mode:
authorJohan Hovold <johan+linaro@kernel.org>2025-07-21 17:36:09 +0200
committerBjorn Helgaas <bhelgaas@google.com>2025-08-27 14:32:25 -0500
commitdc32e9346b26ba33e84ec3034a1e53a9733700f9 (patch)
treec284a671cc98aa5b8d62f282ba18cdd5f9ca03f7 /drivers/pci/remove.c
parente24bbbe0780262a21fc8619fe99078a5b8d64b18 (diff)
PCI/pwrctrl: Fix device leak at device stop
Make sure to drop the reference to the pwrctrl device taken by of_find_device_by_node() when stopping a PCI device. Fixes: 681725afb6b9 ("PCI/pwrctl: Remove pwrctl device without iterating over all children of pwrctl parent") Signed-off-by: Johan Hovold <johan+linaro@kernel.org> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Reviewed-by: Manivannan Sadhasivam <mani@kernel.org> Cc: stable@vger.kernel.org # v6.13 Link: https://patch.msgid.link/20250721153609.8611-4-johan+linaro@kernel.org
Diffstat (limited to 'drivers/pci/remove.c')
-rw-r--r--drivers/pci/remove.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/pci/remove.c b/drivers/pci/remove.c
index 445afdfa6498..16f21edbc29d 100644
--- a/drivers/pci/remove.c
+++ b/drivers/pci/remove.c
@@ -31,6 +31,8 @@ static void pci_pwrctrl_unregister(struct device *dev)
return;
of_device_unregister(pdev);
+ put_device(&pdev->dev);
+
of_node_clear_flag(np, OF_POPULATED);
}