[PATCH] of: fdt: add size 0 check after page align

From: skseofh
Date: Sat Mar 02 2024 - 09:03:59 EST


From: Daero Lee <skseofh@xxxxxxxxx>

After page aligning, the size may become zero. So I added exception
handling code for size 0.

example : 4K page size
[before page align]
base = 0x1800
size = 0x1100

[after page align]
size = 0x900
base = 0x2000

size &= PAGE_MASK(~0x7FFF) = 0

Signed-off-by: Daero Lee <skseofh@xxxxxxxxx>
---
drivers/of/fdt.c | 5 +++++
1 file changed, 5 insertions(+)

diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index bf502ba8da95..01156088fbb4 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -1232,6 +1232,11 @@ void __init __weak early_init_dt_add_memory_arch(u64 base, u64 size)
base = PAGE_ALIGN(base);
}
size &= PAGE_MASK;
+ if (!size) {
+ pr_warn("Ignoring memory block 0x%llx - 0x%llx\n",
+ base, base + size);
+ return;
+ }

if (base > MAX_MEMBLOCK_ADDR) {
pr_warn("Ignoring memory block 0x%llx - 0x%llx\n",
--
2.25.1