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

