of: of_reserved_mem: only call memblock_free for normal reserved memory
authorDong Aisheng <aisheng.dong@nxp.com>
Fri, 11 Jun 2021 13:11:52 +0000 (21:11 +0800)
committerRob Herring <robh@kernel.org>
Thu, 24 Jun 2021 19:47:26 +0000 (13:47 -0600)
For nomap case, the memory block will be removed by memblock_remove()
in early_init_dt_alloc_reserved_memory_arch(). So it's meaningless to
call memblock_free() on error path.

Cc: Rob Herring <robh+dt@kernel.org>
Cc: devicetree@vger.kernel.org
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Link: https://lore.kernel.org/r/20210611131153.3731147-1-aisheng.dong@nxp.com
Signed-off-by: Rob Herring <robh@kernel.org>
drivers/of/of_reserved_mem.c

index 333d33b..b1d7fc3 100644 (file)
@@ -275,9 +275,10 @@ void __init fdt_init_reserved_mem(void)
                        if (err != 0 && err != -ENOENT) {
                                pr_info("node %s compatible matching fail\n",
                                        rmem->name);
-                               memblock_free(rmem->base, rmem->size);
                                if (nomap)
                                        memblock_add(rmem->base, rmem->size);
+                               else
+                                       memblock_free(rmem->base, rmem->size);
                        }
                }
        }