diff --git a/kernel/vm.c b/kernel/vm.c
index c9b632d..2ab5720 100644
--- a/kernel/vm.c
+++ b/kernel/vm.c
@@ -591,10 +591,11 @@ int vm_map(pde_t *pdir, void *va, uint32_t pa, uint32_t size, int perm)
 			// couldn't find it
 			return E_NO_PTE;
 		}
-#if TRACING_VM
-		cio_printf("  addr %08x pa %08x last %08x pte %08x *pte %08x\n",
-				   (uint32_t)addr, pa, (uint32_t)last, (uint32_t)pte, *pte);
-#endif
+		// #if TRACING_VM
+		//		cio_printf( "  addr %08x pa %08x last %08x pte %08x *pte %08x\n",
+		//			(uint32_t) addr, pa, (uint32_t) last, (uint32_t) pte, *pte
+		//		);
+		//#endif
 
 		// create the new entry
 		pde_t entry = pa | perm | PTE_P;
diff --git a/kernel/vmtables.c b/kernel/vmtables.c
index ab398f0..4dfce43 100644
--- a/kernel/vmtables.c
+++ b/kernel/vmtables.c
@@ -365,6 +365,8 @@ const pte_t id_map[N_PTE] = {
 };
 #endif /* MAKE_IDENTITY_MAP */
 
+extern int _end;
+
 /*
 ** Kernel address mappings, present in every page table
 */
@@ -372,7 +374,8 @@ const mapping_t kmap[] = {
 	// va                pa_start     pa_end       perms
 	{ KERN_BASE, 0, EXT_BASE, PDE_RW },
 	{ KERN_VLINK, KERN_PLINK, V2P(_data), PDE_RW },
-	{ (uint32_t)_data, V2P(_data), KERN_BASE, PDE_RW },
+	//	{ (uint32_t) _data,  V2P(_data),  V2P(_end),   PDE_RW },
+	{ (uint32_t)_data, V2P(_data), PHYS_TOP, PDE_RW },
 	{ DEV_BASE, DEV_BASE, 0, PDE_RW }
 };
 const uint_t n_kmap = sizeof(kmap) / sizeof(kmap[0]);