Index: kernel/arch/arm32/src/mm/page.c
===================================================================
--- kernel/arch/arm32/src/mm/page.c	(revision 31198c1215c4e4a979a6f8e80df9c8c170c13886)
+++ kernel/arch/arm32/src/mm/page.c	(revision 4acaa7c0d4fdaf4f08ad44578e5a437a7f8dc98f)
@@ -53,4 +53,6 @@
 	int flags = PAGE_CACHEABLE;
 	page_mapping_operations = &pt_mapping_operations;
+
+	page_table_lock(AS_KERNEL, true);
 	
 	uintptr_t cur;
@@ -66,4 +68,6 @@
 #error "Only high exception vector supported now"
 #endif
+
+	page_table_unlock(AS_KERNEL, true);
 	
 	as_switch(NULL, AS_KERNEL);
@@ -92,4 +96,6 @@
 	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),
@@ -97,4 +103,5 @@
 		    PAGE_NOT_CACHEABLE | PAGE_READ | PAGE_WRITE | PAGE_KERNEL);
 	}
+	page_table_unlock(AS_KERNEL, true);
 	
 	last_frame = ALIGN_UP(last_frame + size, FRAME_SIZE);
