hi3670_pcie_get_resources_from_pcie() gets a reference to the PCIe platform device with bus_find_device_by_of_node(), but never releases it. The reference is not stored anywhere, so it is leaked both when dev_get_regmap() fails and on the success path. Drop the reference right after the regmap lookup, the last use of the device. Fixes: 73075011ffff ("phy: HiSilicon: Add driver for Kirin 970 PCIe PHY") Cc: stable@vger.kernel.org Signed-off-by: Wentao Liang --- drivers/phy/hisilicon/phy-hi3670-pcie.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/phy/hisilicon/phy-hi3670-pcie.c b/drivers/phy/hisilicon/phy-hi3670-pcie.c index dbc7dcce682b..87eac058a4bc 100644 --- a/drivers/phy/hisilicon/phy-hi3670-pcie.c +++ b/drivers/phy/hisilicon/phy-hi3670-pcie.c @@ -584,6 +584,7 @@ static int hi3670_pcie_get_resources_from_pcie(struct hi3670_pcie_phy *phy) * right regmap. So, let's use the named version. */ phy->apb = dev_get_regmap(pcie_dev, "kirin_pcie_apb"); + put_device(pcie_dev); if (!phy->apb) { dev_err(dev, "Failed to get APB regmap\n"); return -ENODEV; -- 2.34.1