diff --git a/kernel/vm.c b/kernel/vm.c
index 284b72d..9f69783 100644
--- a/kernel/vm.c
+++ b/kernel/vm.c
@@ -61,7 +61,12 @@ kvminit(void)
 void
 kvminithart()
 {
+  // wait for any previous writes to the page table memory to finish.
+  sfence_vma();
+
   w_satp(MAKE_SATP(kernel_pagetable));
+
+  // flush stale entries from the TLB.
   sfence_vma();
 }