Index: kernel/generic/include/mm/page.h
===================================================================
--- kernel/generic/include/mm/page.h	(revision 7aaed09d88be49fac8360d3017e3328ed9b0635c)
+++ kernel/generic/include/mm/page.h	(revision 0fd9b3513b2c0cfce8b0c99e0acbaf3470c1bc80)
@@ -49,4 +49,5 @@
 	void (* mapping_remove)(as_t *, uintptr_t);
 	pte_t *(* mapping_find)(as_t *, uintptr_t, bool);
+	void (* mapping_make_global)(uintptr_t, size_t);
 } page_mapping_operations_t;
 
@@ -60,4 +61,5 @@
 extern void page_mapping_remove(as_t *, uintptr_t);
 extern pte_t *page_mapping_find(as_t *, uintptr_t, bool);
+extern void page_mapping_make_global(uintptr_t, size_t);
 extern pte_t *page_table_create(unsigned int);
 extern void page_table_destroy(pte_t *);
Index: kernel/generic/src/mm/km.c
===================================================================
--- kernel/generic/src/mm/km.c	(revision 7aaed09d88be49fac8360d3017e3328ed9b0635c)
+++ kernel/generic/src/mm/km.c	(revision 0fd9b3513b2c0cfce8b0c99e0acbaf3470c1bc80)
@@ -38,4 +38,5 @@
 #include <mm/km.h>
 #include <arch/mm/km.h>
+#include <mm/page.h>
 #include <config.h>
 #include <typedefs.h>
@@ -70,4 +71,6 @@
 	bool span_added;
 
+	page_mapping_make_global(base, size);
+
 	span_added = ra_span_add(km_ni_arena, base, size);
 	ASSERT(span_added);
Index: kernel/generic/src/mm/page.c
===================================================================
--- kernel/generic/src/mm/page.c	(revision 7aaed09d88be49fac8360d3017e3328ed9b0635c)
+++ kernel/generic/src/mm/page.c	(revision 0fd9b3513b2c0cfce8b0c99e0acbaf3470c1bc80)
@@ -178,4 +178,17 @@
 }
 
+/** Make the mapping shared by all page tables (not address spaces).
+ * 
+ * @param base Starting virtual address of the range that is made global.
+ * @param size Size of the address range that is made global.
+ */
+void page_mapping_make_global(uintptr_t base, size_t size)
+{
+	ASSERT(page_mapping_operations);
+	ASSERT(page_mapping_operations->mapping_make_global);
+	
+	return page_mapping_operations->mapping_make_global(base, size);
+}
+
 uintptr_t hw_map(uintptr_t physaddr, size_t size)
 {
