On Thu, Jan 20, 2022 at 02:37:38PM +0100, Alexander Sverdlin wrote: > arch/arm/mach-ep93xx/clock.c:151:2: note: Taking true branch > if (IS_ERR(clk)) > ^ > arch/arm/mach-ep93xx/clock.c:152:3: note: Memory is released > kfree(psc); > ^~~~~~~~~~ > arch/arm/mach-ep93xx/clock.c:154:2: note: Use of memory after it is freed > return &psc->hw; > ^ ~~~~~~~~ > > Link: https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx/thread/B5YCO2NJEXINCYE26Y255LCVMO55BGWW/ > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Fixes: 9645ccc7bd7a ("ep93xx: clock: convert in-place to COMMON_CLK") > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx> > --- > arch/arm/mach-ep93xx/clock.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/arch/arm/mach-ep93xx/clock.c b/arch/arm/mach-ep93xx/clock.c > index cc75087134d3..4aee14f18123 100644 > --- a/arch/arm/mach-ep93xx/clock.c > +++ b/arch/arm/mach-ep93xx/clock.c > @@ -148,8 +148,10 @@ static struct clk_hw *ep93xx_clk_register_gate(const char *name, > psc->lock = &clk_lock; > > clk = clk_register(NULL, &psc->hw); > - if (IS_ERR(clk)) > + if (IS_ERR(clk)) { > kfree(psc); > + return (void *)clk; Prefer ERR_CAST to the raw cast. I think that's nicer when we're already using the IS_ERR macros. > + } > > return &psc->hw; > } > -- > 2.34.1 >