diff --git a/kernel/arch/i686/PageTable.cpp b/kernel/arch/i686/PageTable.cpp index 8f8159f6..60ceb108 100644 --- a/kernel/arch/i686/PageTable.cpp +++ b/kernel/arch/i686/PageTable.cpp @@ -343,8 +343,8 @@ namespace Kernel ; else if (pages <= 32 || !s_is_initialized) { - for (size_t i = 0; i < pages; i++, vaddr += PAGE_SIZE) - asm volatile("invlpg (%0)" :: "r"(vaddr)); + for (size_t i = 0; i < pages; i++) + asm volatile("invlpg (%0)" :: "r"(vaddr + i * PAGE_SIZE)); } else if (is_userspace || !s_has_pge) { diff --git a/kernel/arch/x86_64/PageTable.cpp b/kernel/arch/x86_64/PageTable.cpp index 3a526909..2fbfe4c0 100644 --- a/kernel/arch/x86_64/PageTable.cpp +++ b/kernel/arch/x86_64/PageTable.cpp @@ -472,8 +472,8 @@ namespace Kernel ; else if (pages <= 32 || !s_is_initialized) { - for (size_t i = 0; i < pages; i++, vaddr += PAGE_SIZE) - asm volatile("invlpg (%0)" :: "r"(vaddr)); + for (size_t i = 0; i < pages; i++) + asm volatile("invlpg (%0)" :: "r"(vaddr + i * PAGE_SIZE)); } else if (is_userspace || !s_has_pge) {