[PATCH v2] of: of_reserved_mem: clean-up reserved memory with no-map

From: skseofh
Date: Wed May 01 2024 - 09:24:19 EST


From: Daero Lee <daero_le.lee@xxxxxxxxxxx>

In early_init_dt_reserve_memory we only add memory w/o no-map flag to
memblock.reserved. But we need to add memory w/ no-map flag to
memblock.reserved, because NOMAP and memblock.reserved are semantically
different.

Signed-off-by: Daero Lee <daero_le.lee@xxxxxxxxxxx>
---
drivers/of/of_reserved_mem.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/of/of_reserved_mem.c b/drivers/of/of_reserved_mem.c
index 8236ecae2953..d00a17a9cebc 100644
--- a/drivers/of/of_reserved_mem.c
+++ b/drivers/of/of_reserved_mem.c
@@ -81,6 +81,7 @@ static void __init fdt_reserved_mem_save_node(unsigned long node, const char *un
static int __init early_init_dt_reserve_memory(phys_addr_t base,
phys_addr_t size, bool nomap)
{
+ int err = 0;
if (nomap) {
/*
* If the memory is already reserved (by another region), we
@@ -91,7 +92,10 @@ static int __init early_init_dt_reserve_memory(phys_addr_t base,
memblock_is_region_reserved(base, size))
return -EBUSY;

- return memblock_mark_nomap(base, size);
+
+ err = memblock_mark_nomap(base, size);
+ if (err)
+ return err;
}
return memblock_reserve(base, size);
}
--
2.25.1