Hi Yue,

I appreciate the fix but usually we add a rollback for all the
operations done in the init function.

Please, migrate the init function to the timer-of API, so the rollback
will be automatically handled.

Example here:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/clocksource/timer-sprd.c#n197

On 09/03/2019 14:19, Yue Haibing wrote:
> From: YueHaibing <[email protected]>
> 
> Add the missing kfree() in ttc_setup_clockevent() to free the
> mem before error return.
> 
> Fixes: 70504f311d4b ("clocksource/drivers/cadence_ttc: Convert init function 
> to return error")
> Signed-off-by: YueHaibing <[email protected]>
> ---
>  drivers/clocksource/timer-cadence-ttc.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/clocksource/timer-cadence-ttc.c 
> b/drivers/clocksource/timer-cadence-ttc.c
> index b334029..b664af8 100644
> --- a/drivers/clocksource/timer-cadence-ttc.c
> +++ b/drivers/clocksource/timer-cadence-ttc.c
> @@ -432,6 +432,7 @@ static int __init ttc_setup_clockevent(struct clk *clk,
>                                   &ttcce->ttc.clk_rate_change_nb);
>       if (err) {
>               pr_warn("Unable to register clock notifier.\n");
> +             kfree(ttcce);
>               return err;
>       }
>  
> 


-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog

Reply via email to