Re: [PATCH] fix: net: marvell: orion_mdio_probe: fix clock reference leak on extra clock detection
From: WenTao Liang <hidden>
Date: 2026-06-28 04:02:53
Also in:
lkml, stable
quoted hunk ↗ jump to hunk
2026年6月26日 23:19,WenTao Liang [off-list ref] 写道: The code calls of_clk_get(pdev->dev.of_node, ARRAY_SIZE(dev->clk)) to detect unsupported extra clocks. If an extra clock exists, the function prints a warning but discards the returned clk pointer without calling clk_put, leaking a clock reference on every probe. Store the returned clock and call clk_put after the warning to properly release the acquired reference. Cc: stable@vger.kernel.org Fixes: ea664b1bdc19 ("net: mvmdio: print warning when orion-mdio has too many clocks") Signed-off-by: WenTao Liang <redacted> --- drivers/net/ethernet/marvell/mvmdio.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-)diff --git a/drivers/net/ethernet/marvell/mvmdio.c b/drivers/net/ethernet/marvell/mvmdio.c index 3f4447e68888..4e5b5c5f7301 100644 --- a/drivers/net/ethernet/marvell/mvmdio.c +++ b/drivers/net/ethernet/marvell/mvmdio.c@@ -339,11 +339,18 @@ static int orion_mdio_probe(struct platform_device *pdev)clk_prepare_enable(dev->clk[i]); } - if (!IS_ERR(of_clk_get(pdev->dev.of_node, - ARRAY_SIZE(dev->clk)))) - dev_warn(&pdev->dev, - "unsupported number of clocks, limiting to the first " - __stringify(ARRAY_SIZE(dev->clk)) "\n"); + { + struct clk *extra_clk; + + extra_clk = of_clk_get(pdev->dev.of_node, + ARRAY_SIZE(dev->clk)); + if (!IS_ERR(extra_clk)) { + dev_warn(&pdev->dev, + "unsupported number of clocks, limiting to the first " + __stringify(ARRAY_SIZE(dev->clk)) "\n"); + clk_put(extra_clk); + } + } if (type == BUS_TYPE_XSMI) orion_mdio_xsmi_set_mdc_freq(bus); -- 2.39.5 (Apple Git-154)
Please ignore this patch. I will resend a proper version after learning the kernel submission process. Apologies for the noise. Best regards, WenTao Liang