[PATCH] devfreq: event: rockchip-dfi: fix missing clk_disable_unprepare() on error

Choi Chanwoo cwchoi00 at gmail.com
Wed Apr 29 15:35:22 PDT 2026



2026-03-20 AM 1:30에 Anas Iqbal 이(가) 쓴 글:
> Smatch reports:
> drivers/devfreq/event/rockchip-dfi.c:215 rockchip_dfi_enable() warn:
> 'dfi->clk' from clk_prepare_enable() not released.
> 
> If rockchip_dfi_ddrtype_to_ctrl() fails after clk_prepare_enable(),
> the clock is not disabled, leading to a resource leak.
> 
> Add clk_disable_unprepare() in the error path to properly release
> the clock.
> 
> Fixes: d724f4a4581b ("PM / devfreq: rockchip-dfi: Prepare for multiple users")
> Signed-off-by: Anas Iqbal <mohd.abd.6602 at gmail.com>
> ---
>  drivers/devfreq/event/rockchip-dfi.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/devfreq/event/rockchip-dfi.c b/drivers/devfreq/event/rockchip-dfi.c
> index 5e6e7e900bda..8db0bceeded4 100644
> --- a/drivers/devfreq/event/rockchip-dfi.c
> +++ b/drivers/devfreq/event/rockchip-dfi.c
> @@ -185,8 +185,10 @@ static int rockchip_dfi_enable(struct rockchip_dfi *dfi)
>  	}
>  
>  	ret = rockchip_dfi_ddrtype_to_ctrl(dfi, &ctrl);
> -	if (ret)
> +	if (ret) {
> +		clk_disable_unprepare(dfi->clk);
>  		goto out;
> +	}
>  
>  	for (i = 0; i < dfi->max_channels; i++) {
>  

Applied it.

Thanks,
Chanwoo Choi



More information about the Linux-rockchip mailing list