diff --git a/vm/sparse.c b/vm/sparse.c index 286a5b4..aa28f6a 100644 --- a/vm/sparse.c +++ b/vm/sparse.c @@ -267,7 +267,11 @@ void vm_sparse_init(void) { if (it.it_base & VM_PAGE_MASK) { it.it_base &= ~VM_PAGE_MASK; - it.it_base += VM_PAGE_SIZE; + } + + if (it.it_limit & VM_PAGE_MASK) { + it.it_limit &= ~VM_PAGE_MASK; + it.it_limit += VM_PAGE_SIZE; } for (phys_addr_t i = it.it_base; i < it.it_limit; @@ -281,7 +285,11 @@ void vm_sparse_init(void) { if (it.it_base & VM_PAGE_MASK) { it.it_base &= ~VM_PAGE_MASK; - it.it_base += VM_PAGE_SIZE; + } + + if (it.it_limit & VM_PAGE_MASK) { + it.it_limit &= ~VM_PAGE_MASK; + it.it_limit += VM_PAGE_SIZE; } for (phys_addr_t i = it.it_base; i < it.it_limit;