|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH 1/2] lib/ukallocbbuddy: Fix definition and assertions of memr.nr_pages
Currently, nr_pages is set to the range size instead of the number of pages in
the memory region. Fixed by shifting by __PAGE_SIZE. Assertions are fixed
accordingly.
Signed-off-by: Bruno Alvisio <bruno.alvisio@xxxxxxxxx>
---
lib/ukallocbbuddy/bbuddy.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/lib/ukallocbbuddy/bbuddy.c b/lib/ukallocbbuddy/bbuddy.c
index b830995..13cb0c8 100644
--- a/lib/ukallocbbuddy/bbuddy.c
+++ b/lib/ukallocbbuddy/bbuddy.c
@@ -107,7 +107,7 @@ static inline struct uk_bbpalloc_memr *map_get_memr(struct
uk_bbpalloc *b,
*/
for (memr = b->memr_head; memr != NULL; memr = memr->next) {
if ((page_num >= memr->first_page)
- && (page_num < (memr->first_page + memr->nr_pages)))
+ && (page_num < (memr->first_page + memr->nr_pages <<
__PAGE_SIZE)))
return memr;
}
@@ -145,7 +145,7 @@ static void map_alloc(struct uk_bbpalloc *b, uintptr_t
first_page,
memr = map_get_memr(b, first_page);
UK_ASSERT(memr != NULL);
UK_ASSERT((first_page + nr_pages)
- <= (memr->first_page + memr->nr_pages));
+ <= (memr->first_page + memr->nr_pages << __PAGE_SIZE));
first_page -= memr->first_page;
curr_idx = first_page / PAGES_PER_MAPWORD;
@@ -362,7 +362,8 @@ static int bbuddy_addmem(struct uk_alloc *a, void *base,
size_t len)
* Initialize region's bitmap
*/
memr->first_page = min;
- memr->nr_pages = max - min;
+ memr->nr_pages = (max - min) >> __PAGE_SIZE;
+
/* add to list */
memr->next = b->memr_head;
b->memr_head = memr;
--
2.3.2 (Apple Git-55)
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |