Index: kernel/arch/ia32/src/mm/page.c
===================================================================
--- kernel/arch/ia32/src/mm/page.c	(revision ba4a63b85a4380c6b8324933e535690fa7ca1d70)
+++ kernel/arch/ia32/src/mm/page.c	(revision b0b2ac1f84a3b0e8bfe6e96b3a01b9159ef4239f)
@@ -61,4 +61,5 @@
 		 * PA2KA(identity) mapping for all frames until last_frame.
 		 */
+		page_table_lock(AS_KERNEL, true);
 		for (cur = 0; cur < last_frame; cur += FRAME_SIZE) {
 			flags = PAGE_CACHEABLE | PAGE_WRITE;
@@ -67,4 +68,5 @@
 			page_mapping_insert(AS_KERNEL, PA2KA(cur), cur, flags);
 		}
+		page_table_unlock(AS_KERNEL, true);
 		
 		exc_register(14, "page_fault", (iroutine) page_fault);
@@ -84,8 +86,10 @@
 	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++) {
 		uintptr_t addr = PFN2ADDR(i);
 		page_mapping_insert(AS_KERNEL, virtaddr + addr, physaddr + addr, PAGE_NOT_CACHEABLE | PAGE_WRITE);
 	}
+	page_table_unlock(AS_KERNEL, true);
 	
 	last_frame = ALIGN_UP(last_frame + size, FRAME_SIZE);
