aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/sbi/sbi_domain.c23
1 files changed, 3 insertions, 20 deletions
diff --git a/lib/sbi/sbi_domain.c b/lib/sbi/sbi_domain.c
index 74cc1e3f..a19bf25b 100644
--- a/lib/sbi/sbi_domain.c
+++ b/lib/sbi/sbi_domain.c
@@ -285,29 +285,12 @@ static bool is_region_valid(const struct sbi_domain_memregion *reg)
return true;
}
-/** Check if regionA is sub-region of regionB */
-static bool is_region_subset(const struct sbi_domain_memregion *regA,
- const struct sbi_domain_memregion *regB)
-{
- ulong regA_start = regA->base;
- ulong regA_end = regA->base + (BIT(regA->order) - 1);
- ulong regB_start = regB->base;
- ulong regB_end = regB->base + (BIT(regB->order) - 1);
-
- if ((regB_start <= regA_start) &&
- (regA_start < regB_end) &&
- (regB_start < regA_end) &&
- (regA_end <= regB_end))
- return true;
-
- return false;
-}
-
/** Check if regionA can be replaced by regionB */
static bool is_region_compatible(const struct sbi_domain_memregion *regA,
const struct sbi_domain_memregion *regB)
{
- if (is_region_subset(regA, regB) && regA->flags == regB->flags)
+ if (sbi_domain_memregion_is_subset(regA, regB) &&
+ regA->flags == regB->flags)
return true;
return false;
@@ -367,7 +350,7 @@ static const struct sbi_domain_memregion *find_next_subset_region(
sbi_domain_for_each_memregion(dom, sreg) {
if (sreg == reg || (sreg->base <= addr) ||
- !is_region_subset(sreg, reg))
+ !sbi_domain_memregion_is_subset(sreg, reg))
continue;
if (!ret || (sreg->base < ret->base) ||