Index: kernel/arch/amd64/src/mm/page.c
===================================================================
--- kernel/arch/amd64/src/mm/page.c	(revision da1bafb8cf9a3b3be8ef21bc114daaa476a85190)
+++ kernel/arch/amd64/src/mm/page.c	(revision 48dcc699ceb1979a093dbc5c8b698fe7f16536ed)
@@ -88,4 +88,6 @@
 	if (config.cpu_active == 1) {
 		page_mapping_operations = &pt_mapping_operations;
+
+		page_table_lock(AS_KERNEL, true);
 
 		/*
@@ -112,4 +114,6 @@
 		}
 
+		page_table_unlock(AS_KERNEL, true);
+
 		exc_register(14, "page_fault", (iroutine) page_fault);
 		write_cr3((uintptr_t) AS_KERNEL->genarch.page_table);
@@ -208,6 +212,9 @@
 	uintptr_t virtaddr = PA2KA(last_frame);
 	pfn_t i;
+
+	page_table_lock(AS_KERNEL, true);
 	for (i = 0; i < ADDR2PFN(ALIGN_UP(size, PAGE_SIZE)); i++)
 		page_mapping_insert(AS_KERNEL, virtaddr + PFN2ADDR(i), physaddr + PFN2ADDR(i), PAGE_NOT_CACHEABLE | PAGE_WRITE);
+	page_table_unlock(AS_KERNEL, true);
 	
 	last_frame = ALIGN_UP(last_frame + size, FRAME_SIZE);
