diff --git a/vm.c b/vm.c
index c30694e147aa34bc9680c2431513b3a44a2ebdd7..10687fcaa12651e148326700a0412146c375ed16 100644
--- a/vm.c
+++ b/vm.c
@@ -289,6 +289,19 @@ freevm(pde_t *pgdir)
   kfree((char*)pgdir);
 }
 
+// Clear PTE_U on a page. Used to create an inaccessible
+// page beneath the user stack.
+void
+clear_pte_u(pde_t *pgdir, char *uva)
+{
+  pte_t *pte;
+
+  pte = walkpgdir(pgdir, uva, 0);
+  if(pte == 0)
+    panic("clear_pte_u");
+  *pte &= ~PTE_U;
+}
+
 // Given a parent process's page table, create a copy
 // of it for a child.
 pde_t*
@@ -360,16 +373,3 @@ copyout(pde_t *pgdir, uint va, void *p, uint len)
   }
   return 0;
 }
-
-// Clear PTE_U on a page. Used to create an inaccessible
-// page beneath the user stack.
-void
-clear_pte_u(pde_t *pgdir, char *uva)
-{
-  pte_t *pte;
-
-  pte = walkpgdir(pgdir, uva, 0);
-  if(pte == 0)
-    panic("clear_pte_u");
-  *pte &= ~PTE_U;
-}