[PATCH 1/2] lib: Check region base for merging in sbi_domain_root_add_memregion()
Anup Patel
anup.patel at wdc.com
Thu May 20 08:59:11 PDT 2021
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 at wdc.com>
---
lib/sbi/sbi_domain.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/sbi/sbi_domain.c b/lib/sbi/sbi_domain.c
index 84f30b9..3096af0 100644
--- a/lib/sbi/sbi_domain.c
+++ b/lib/sbi/sbi_domain.c
@@ -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++;
--
2.25.1
More information about the opensbi
mailing list