Index: kernel/generic/include/mm/frame.h
===================================================================
--- kernel/generic/include/mm/frame.h	(revision c32e6bc6032110a396cc7816b70d9a2a6012432a)
+++ kernel/generic/include/mm/frame.h	(revision e608cbea8147ce5a5b28bbf343c30023b3327f75)
@@ -159,6 +159,8 @@
 extern void *frame_alloc_generic(uint8_t, frame_flags_t, size_t *);
 extern void *frame_alloc(uint8_t, frame_flags_t);
+extern void *frame_alloc_noreserve(uint8_t, frame_flags_t);
 extern void frame_free_generic(uintptr_t, frame_flags_t);
 extern void frame_free(uintptr_t);
+extern void frame_free_noreserve(uintptr_t);
 extern void frame_reference_add(pfn_t);
 
Index: kernel/generic/src/mm/frame.c
===================================================================
--- kernel/generic/src/mm/frame.c	(revision c32e6bc6032110a396cc7816b70d9a2a6012432a)
+++ kernel/generic/src/mm/frame.c	(revision e608cbea8147ce5a5b28bbf343c30023b3327f75)
@@ -1091,4 +1091,9 @@
 }
 
+void *frame_alloc_noreserve(uint8_t order, frame_flags_t flags)
+{
+	return frame_alloc_generic(order, flags | FRAME_NO_RESERVE, NULL);
+}
+
 /** Free a frame.
  *
@@ -1134,4 +1139,9 @@
 {
 	frame_free_generic(frame, 0);
+}
+
+void frame_free_noreserve(uintptr_t frame)
+{
+	frame_free_generic(frame, FRAME_NO_RESERVE);
 }
 
