Index: kernel/arch/ia64/src/mm/as.c
===================================================================
--- kernel/arch/ia64/src/mm/as.c	(revision 0ff9e67f7c2c8fa8131d075d54fd17e3dc98f207)
+++ kernel/arch/ia64/src/mm/as.c	(revision 52cdcbcb92cae7de860c5d62e64b13d7743a1ba9)
@@ -70,8 +70,5 @@
 		rr.word = rr_read(i);
 		rr.map.ve = false;		/* disable VHPT walker */
-		if (as == AS_KERNEL)
-			rr.map.rid = RID_INVALID;
-		else
-			rr.map.rid = ASID2RID(as->asid, i);
+		rr.map.rid = ASID2RID(as->asid, i);
 		rr.map.ps = PAGE_WIDTH;
 		rr_write(i, rr.word);
Index: kernel/arch/ia64/src/mm/page.c
===================================================================
--- kernel/arch/ia64/src/mm/page.c	(revision 0ff9e67f7c2c8fa8131d075d54fd17e3dc98f207)
+++ kernel/arch/ia64/src/mm/page.c	(revision 52cdcbcb92cae7de860c5d62e64b13d7743a1ba9)
@@ -71,26 +71,12 @@
 
 	/*
-	 * First set up kernel region register.
-	 * This is redundant (see start.S) but we keep it here just for sure.
-	 */
-	rr.word = rr_read(VRN_KERNEL);
-	rr.map.ve = 0;                  /* disable VHPT walker */
-	rr.map.ps = PAGE_WIDTH;
-	rr.map.rid = ASID2RID(ASID_KERNEL, VRN_KERNEL);
-	rr_write(VRN_KERNEL, rr.word);
-	srlz_i();
-	srlz_d();
-
-	/*
-	 * And setup the rest of region register.
+	 * Set up kernel region registers.
+	 * VRN_KERNEL has already been set in start.S.
+	 * For paranoia reasons, we set it again.
 	 */
 	for(i = 0; i < REGION_REGISTERS; i++) {
-		/* skip kernel rr */
-		if (i == VRN_KERNEL)
-			continue;
-	
 		rr.word = rr_read(i);
 		rr.map.ve = 0;		/* disable VHPT walker */
-		rr.map.rid = RID_INVALID;
+		rr.map.rid = ASID2RID(ASID_KERNEL, i);
 		rr.map.ps = PAGE_WIDTH;
 		rr_write(i, rr.word);
