On 2026-09-24 15:05, Amit Machhiwal wrote:
On 2026/09/24 12:00 PM, Jyoti Gupta wrote:
mpic_alloc() allocates struct mpic (and optionally the protected
sources bitmap) but does not free them when mpic_setup_error_int() or
irq_domain_create_linear() fails, leaking the memory.

Initialise mpic to NULL and free the bitmap and the mpic in the common
error path before dropping the device node reference. The register
mappings are not released here.

Signed-off-by: Jyoti Gupta <[email protected]>

I see a couple of problems with this patch:

1. The patch does not apply. Both "git apply" and "git am" fail on this patch. I think the context lines around the irq_domain_create_linear() call have
   tabs converted to spaces, which causes the context match to fail.

      ❯ git apply
./20260924_jyoti_powerpc_mpic_fix_memory_leak_of_mpic_on_error_paths.mbx
--check --verbose
      Checking patch arch/powerpc/sysdev/mpic.c...
      error: while searching for:
                                                 intvec_top,
                                                 &mpic_host_ops, mpic);

        /*
         * FIXME: The code leaks the MPIC object and mappings here; this
         * is very unlikely to fail but it ought to be fixed anyways.
         */
        if (mpic->irqhost == NULL)
                goto err_of_node_put;


      error: patch failed: arch/powerpc/sysdev/mpic.c:1488
      error: arch/powerpc/sysdev/mpic.c: patch does not apply

   Please regenerate with:

     git format-patch -1

   and verify with:

     git apply --check <patch>

   before resending.


Noted.I will regenerate with git format-patch -1 and verify with git apply --check
before resending as v2.

2. The mpic_setup_error_int() leak is not actually fixed. The commit message says both mpic_setup_error_int() and irq_domain_create_linear() failure paths
   are fixed, but the former still does a bare return NULL:

     if (fsl_version >= 0x401) {
         ret = mpic_setup_error_int(mpic, intvec_top - 13);
         if (ret)
return NULL; /* <-- still leaks mpic and mpic->protected */
     }

   This needs to become:

         if (ret)
             goto err_of_node_put;

Thanks,
Amit


The mpic_setup_error_int() leak is intentionally left to a separate patch already under
 review:
"[PATCH] powerpc: Fix missing of_node_put() calls"
That patch converts the return NULL at line 1392 to goto err_of_node_put as part of a broader of_node_put() fix series. This patch focuses only on the irq_domain_create_linear()
failure path.

Thanks,
Jyoti

Reply via email to