[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <2f18dda9-7163-44bf-a075-bdd46ac5cef8@linaro.org>
Date: Tue, 13 Jan 2026 09:07:14 +0100
From: Neil Armstrong <neil.armstrong@...aro.org>
To: Wentao Liang <vulab@...as.ac.cn>, vkoul@...nel.org, kishon@...nel.org,
heiko@...ech.de
Cc: linux-phy@...ts.infradead.org, linux-rockchip@...ts.infradead.org,
linux-kernel@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
stable@...r.kernel.org
Subject: Re: [PATCH v2] phy: rockchip: inno-usb2: Fix a double free bug in
rockchip_usb2phy_probe()
On 1/9/26 16:46, Wentao Liang wrote:
> The for_each_available_child_of_node() calls of_node_put() to
> release child_np in each success loop. After breaking from the
> loop with the child_np has been released, the code will jump to
> the put_child label and will call the of_node_put() again if the
> devm_request_threaded_irq() fails. These cause a double free bug.
>
> Fix by returning directly to avoid the duplicate of_node_put().
>
> Fixes: ed2b5a8e6b98 ("phy: phy-rockchip-inno-usb2: support muxed interrupts")
> Cc: stable@...r.kernel.org
> Signed-off-by: Wentao Liang <vulab@...as.ac.cn>
>
> ---
> Changes in v2:
> - Drop error jumping label.
> ---
> drivers/phy/rockchip/phy-rockchip-inno-usb2.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
> index b0f23690ec30..fe97a26297af 100644
> --- a/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
> +++ b/drivers/phy/rockchip/phy-rockchip-inno-usb2.c
> @@ -1491,7 +1491,7 @@ static int rockchip_usb2phy_probe(struct platform_device *pdev)
> rphy);
> if (ret) {
> dev_err_probe(rphy->dev, ret, "failed to request usb2phy irq handle\n");
> - goto put_child;
> + return ret;
> }
> }
>
Good catch !
Reviewed-by: Neil Armstrong <neil.armstrong@...aro.org>
Thanks,
Neil
Powered by blists - more mailing lists