[PATCH v1] irqchip/atmel-aic5: Free SMR cache on init failure

최유호 dbgh9129 at gmail.com
Sun May 17 13:34:27 PDT 2026


Fair point. I submitted this from a general code hygiene perspective.
Thanks for taking the time to review it.

Best regards,
Yuho Choi

On Fri, 15 May 2026 at 05:58, Nicolas Ferre <nicolas.ferre at microchip.com> wrote:
>
> On 14/05/2026 at 01:31, Yuho Choi wrote:
> > sama5d2_aic5_of_init() allocates the SMR cache before calling
> > aic5_of_init(). If that fails, the cache is left allocated even though
> > no IRQ domain was installed and the cache will not be used.
> >
> > Free the cache on the failure path and clear the global pointer.
>
> No aic5 = no viable system to run on: I'm not sure it's worth
> considering the case.
>
> > Fixes: a50ac562ef48 ("irqchip/atmel-aic5: Handle suspend to RAM")
> > Signed-off-by: Yuho Choi <dbgh9129 at gmail.com>
> > ---
> >   drivers/irqchip/irq-atmel-aic5.c | 11 ++++++++++-
> >   1 file changed, 10 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/irqchip/irq-atmel-aic5.c b/drivers/irqchip/irq-atmel-aic5.c
> > index 1f14b401f71d..58650eb16880 100644
> > --- a/drivers/irqchip/irq-atmel-aic5.c
> > +++ b/drivers/irqchip/irq-atmel-aic5.c
> > @@ -358,13 +358,22 @@ static int __init sama5d2_aic5_of_init(struct device_node *node,
> >                                         struct device_node *parent)
> >   {
> >   #ifdef CONFIG_PM
> > +       int rc = 0;
> >          smr_cache = kcalloc(DIV_ROUND_UP(NR_SAMA5D2_IRQS, 32) * 32,
> >                              sizeof(*smr_cache), GFP_KERNEL);
> >          if (!smr_cache)
> >                  return -ENOMEM;
> > -#endif
> >
> > +       rc = aic5_of_init(node, parent, NR_SAMA5D2_IRQS);
> > +       if (rc) {
> > +               kfree(smr_cache);
> > +               smr_cache = NULL;
> > +       }
> > +
> > +       return rc;
> > +#else
> >          return aic5_of_init(node, parent, NR_SAMA5D2_IRQS);
> > +#endif
> >   }
> >   IRQCHIP_DECLARE(sama5d2_aic5, "atmel,sama5d2-aic", sama5d2_aic5_of_init);
> >
> > --
> > 2.43.0
> >
>



More information about the linux-arm-kernel mailing list