vm: mark memory holes as reserved under sparse memory model
This commit is contained in:
@@ -60,9 +60,15 @@ static vm_page_t *get_or_create_page(phys_addr_t addr)
|
|||||||
vm_sector_t *sector = §or_array[sector_number];
|
vm_sector_t *sector = §or_array[sector_number];
|
||||||
|
|
||||||
if (!sector->s_pages) {
|
if (!sector->s_pages) {
|
||||||
sector->s_pages = kzalloc(vm_page_order_to_pages(sector->s_size) * sizeof(vm_page_t), 0);
|
size_t nr_pages = vm_page_order_to_pages(sector->s_size);
|
||||||
|
sector->s_pages = kzalloc(nr_pages * sizeof(vm_page_t), 0);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < nr_pages; i++) {
|
||||||
|
sector->s_pages[i].p_flags = VM_PAGE_RESERVED;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sector->s_pages[page_number].p_sector = sector_number;
|
sector->s_pages[page_number].p_sector = sector_number;
|
||||||
return §or->s_pages[page_number];
|
return §or->s_pages[page_number];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user