Index: arch/amd64/src/pm.c
===================================================================
--- arch/amd64/src/pm.c	(revision 11928d5ea4de28b59bb306148834413475d2daf6)
+++ arch/amd64/src/pm.c	(revision a98cdc75925619cf46177b7e734930398d02a8e2)
@@ -34,4 +34,5 @@
 #include <arch/asm.h>
 #include <interrupt.h>
+#include <mm/as.h>
 
 #include <config.h>
@@ -201,4 +202,9 @@
 	}
 	else {
+		/* We are going to use malloc, which may return
+		 * non boot-mapped pointer, initialize the CR3 register
+		 * ahead of page_init */
+		write_cr3((__address) AS_KERNEL->page_table);
+
 		tss_p = (struct tss *) malloc(sizeof(tss_t), FRAME_ATOMIC);
 		if (!tss_p)
