Index: generic/src/mm/page.c
===================================================================
--- generic/src/mm/page.c	(revision 874878ab8f4787b913b24462b16f625fbc977008)
+++ generic/src/mm/page.c	(revision 0882a9a17a26cf3ed328548c95dfadf23263a59f)
@@ -72,5 +72,5 @@
 }
 
-/** Map page to frame
+/** Insert mapping of page to frame.
  *
  * Map virtual address 'page' to physical address 'frame'
@@ -79,5 +79,5 @@
  * The address space must be locked and interrupts must be disabled.
  *
- * @param as Address space to wich page belongs..
+ * @param as Address space to wich page belongs.
  * @param page Virtual address of the page to be mapped.
  * @param frame Physical address of memory frame to which the mapping is done.
@@ -90,4 +90,23 @@
 	
 	page_mapping_operations->mapping_insert(as, page, frame, flags);
+}
+
+/** Remove mapping of page.
+ *
+ * Remove any mapping of 'page' within address space 'as'.
+ * TLB shootdown should follow in order to make effects of
+ * this call visible.
+ *
+ * The address space must be locked and interrupts must be disabled.
+ *
+ * @param as Address space to wich page belongs.
+ * @param page Virtual address of the page to be demapped.
+ */
+void page_mapping_remove(as_t *as, __address page)
+{
+	ASSERT(page_mapping_operations);
+	ASSERT(page_mapping_operations->mapping_remove);
+	
+	page_mapping_operations->mapping_remove(as, page);
 }
 
