forked from Mirrors/opensbi
lib: Check region base for merging in sbi_domain_root_add_memregion()
We can merge region B onto region A only if base of region A is aligned to region A order + 1. Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Atish Patra <atish.patra@wdc.com> Reviewed-by: Xiang W <wxjstz@126.com>
This commit is contained in:
@@ -511,7 +511,8 @@ int sbi_domain_root_add_memregion(const struct sbi_domain_memregion *reg)
|
||||
if (!nreg1->order)
|
||||
continue;
|
||||
|
||||
if ((nreg->base + BIT(nreg->order)) == nreg1->base &&
|
||||
if (!(nreg->base & (BIT(nreg->order + 1) - 1)) &&
|
||||
(nreg->base + BIT(nreg->order)) == nreg1->base &&
|
||||
nreg->order == nreg1->order &&
|
||||
nreg->flags == nreg1->flags) {
|
||||
nreg->order++;
|
||||
|
Reference in New Issue
Block a user