Skip to content

Commit 84b32b9

Browse files
fix(extra_mem): Remove extra memory that was being mapped
1 parent 33a76e4 commit 84b32b9

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/core/mpu/mem.c

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -610,10 +610,16 @@ vaddr_t mem_map_cpy(struct addr_space* ass, struct addr_space* asd, vaddr_t vas,
610610
mpr = mpe->region;
611611
spin_unlock(&ass->lock);
612612

613-
if (mem_map(asd, &mpr, true, false)) {
614-
va_res = vas;
613+
if (num_pages * PAGE_SIZE > mpr.size) {
614+
va_res = INVALID_VA;
615615
} else {
616-
INFO("failed mem map on mem map cpy");
616+
mpr.size = num_pages * PAGE_SIZE;
617+
bool broadcast = mem_broadcast(asd, &mpr, true);
618+
if (mem_map(asd, &mpr, broadcast, false)) {
619+
va_res = vas;
620+
} else {
621+
INFO("failed mem map on mem map cpy");
622+
}
617623
}
618624
} else {
619625
INFO("failed mem map cpy");

0 commit comments

Comments
 (0)