Index: kernel/generic/src/mm/km.c
===================================================================
--- kernel/generic/src/mm/km.c	(revision adec5b450420e754be2635ab4e7587f68c0a3287)
+++ kernel/generic/src/mm/km.c	(revision 1ccd0aa8618b54ae95b1c86d22c61eb39bb9593a)
@@ -190,10 +190,7 @@
 	    FRAME_HIGHMEM | FRAME_ATOMIC | flags); 
 	if (frame) {
-		page = km_page_alloc(PAGE_SIZE, PAGE_SIZE);
+		page = km_map(frame, PAGE_SIZE,
+		    PAGE_READ | PAGE_WRITE | PAGE_CACHEABLE);
 		ASSERT(page);	// FIXME
-		page_table_lock(AS_KERNEL, true);
-		page_mapping_insert(AS_KERNEL, page, frame,
-		    PAGE_CACHEABLE | PAGE_READ | PAGE_WRITE);
-		page_table_unlock(AS_KERNEL, true);
 	} else {
 		frame = (uintptr_t) frame_alloc_noreserve(ONE_FRAME,
