]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
fsl/fman: Free init resources on KeyGen failure in fman_init()
authorHaoxiang Li <haoxiang_li2024@163.com>
Thu, 25 Jun 2026 00:48:34 +0000 (08:48 +0800)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 30 Jun 2026 08:52:02 +0000 (10:52 +0200)
fman_muram_alloc() allocates initialization resources before
initializing the KeyGen block. If keygen_init() fails, the
function returns -EINVAL directly and leaves those resources
allocated. Free the initialization resources before returning
from the KeyGen failure path.

Fixes: 7472f4f281d0 ("fsl/fman: enable FMan Keygen")
Cc: stable@kernel.org
Signed-off-by: Haoxiang Li <haoxiang_li2024@163.com>
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Reviewed-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20260625004834.3394389-1-haoxiang_li2024@163.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/freescale/fman/fman.c

index 013273a2de32f20a05798f33f962998bacdb97e1..299bab043175b3dbd50a1b13d1ae8e8228409d0c 100644 (file)
@@ -1995,8 +1995,10 @@ static int fman_init(struct fman *fman)
 
        /* Init KeyGen */
        fman->keygen = keygen_init(fman->kg_regs);
-       if (!fman->keygen)
+       if (!fman->keygen) {
+               free_init_resources(fman);
                return -EINVAL;
+       }
 
        err = enable(fman, cfg);
        if (err != 0)