diff --git a/src/kernel/vm_space.cpp b/src/kernel/vm_space.cpp index b380995..a7bd282 100644 --- a/src/kernel/vm_space.cpp +++ b/src/kernel/vm_space.cpp @@ -250,10 +250,10 @@ vm_space::clear(const obj::vm_area &vma, uintptr_t offset, size_t count, bool fr if (flags & page_flags::present) { e = 0; - if (flags & page_flags::accessed) { - auto *addr = reinterpret_cast(it.vaddress()); - asm ( "invlpg %0" :: "m"(*addr) : "memory" ); - } + + auto *addr = reinterpret_cast(it.vaddress()); + asm ( "invlpg %0" :: "m"(*addr) : "memory" ); + if (free_count && phys == free_start + (free_count * frame_size)) { ++free_count; } else {