Index: kernel/generic/src/mm/km.c
===================================================================
--- kernel/generic/src/mm/km.c	(revision efdfebc372ac1a93545f90450c8e1fe0aa789daf)
+++ kernel/generic/src/mm/km.c	(revision 338810f228e704062f4890a4f781a89285e914d3)
@@ -233,5 +233,6 @@
  * @param[inout] framep	Pointer to a variable which will receive the physical
  *			address of the allocated frame.
- * @param[in] flags	Frame allocation flags. FRAME_NONE or FRAME_NO_RESERVE.
+ * @param[in] flags	Frame allocation flags. FRAME_NONE, FRAME_NO_RESERVE
+ *			and FRAME_ATOMIC bits are allowed.
  * @return		Virtual address of the allocated frame.
  */
@@ -243,5 +244,5 @@
 	ASSERT(THREAD);
 	ASSERT(framep);
-	ASSERT(!(flags & ~FRAME_NO_RESERVE));
+	ASSERT(!(flags & ~(FRAME_NO_RESERVE | FRAME_ATOMIC)));
 
 	/*
@@ -255,6 +256,6 @@
 		ASSERT(page);	// FIXME
 	} else {
-		frame = (uintptr_t) frame_alloc_noreserve(ONE_FRAME,
-		    FRAME_LOWMEM);
+		frame = (uintptr_t) frame_alloc(ONE_FRAME,
+		    FRAME_LOWMEM | flags);
 		page = PA2KA(frame);
 	}
