Messages in this thread | | | Subject | Re: [PATCH] clocksource: cadence_ttc: fix memory leak in ttc_setup_clockevent | From | YueHaibing <> | Date | Mon, 11 Mar 2019 23:47:08 +0800 |
| |
On 2019/3/9 22:24, Daniel Lezcano wrote: > > 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
It seems complicated for me,
ttc_setup_clocksource and ttc_setup_clockevent use a different of_clk, hard to use timer_of_init to do a initialization.
I'm not familiar with this. Maybe someone else can do this?
> > On 09/03/2019 14:19, Yue Haibing wrote: >> From: YueHaibing <yuehaibing@huawei.com> >> >> 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 <yuehaibing@huawei.com> >> --- >> 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; >> } >> >> > >
| |