Index: kernel/arch/ia64/src/mm/tlb.c
===================================================================
--- kernel/arch/ia64/src/mm/tlb.c	(revision 50177dcd51d58a030da7707ce62ab9fad45123a6)
+++ kernel/arch/ia64/src/mm/tlb.c	(revision 9aed1447765df907632291e993be7acf559d0057)
@@ -480,5 +480,4 @@
 	va = istate->cr_ifa; /* faulting address */
 	
-	page_table_lock(AS, true);
 	t = page_mapping_find(AS, va, true);
 	if (t) {
@@ -488,10 +487,8 @@
 		 */
 		itc_pte_copy(t);
-		page_table_unlock(AS, true);
 	} else {
 		/*
 		 * Forward the page fault to address space page fault handler.
 		 */
-		page_table_unlock(AS, true);
 		if (as_page_fault(va, PF_ACCESS_EXEC, istate) == AS_PF_FAULT) {
 			fault_if_from_uspace(istate, "Page fault at %p.",
@@ -598,5 +595,4 @@
 	
 	
-	page_table_lock(AS, true);
 	pte_t *entry = page_mapping_find(AS, va, true);
 	if (entry) {
@@ -606,7 +602,5 @@
 		 */
 		dtc_pte_copy(entry);
-		page_table_unlock(AS, true);
 	} else {
-		page_table_unlock(AS, true);
 		if (try_memmap_io_insertion(va, istate))
 			return;
@@ -650,5 +644,4 @@
 	va = istate->cr_ifa;  /* faulting address */
 	
-	page_table_lock(AS, true);
 	t = page_mapping_find(AS, va, true);
 	ASSERT((t) && (t->p));
@@ -667,5 +660,4 @@
 		}
 	}
-	page_table_unlock(AS, true);
 }
 
@@ -683,5 +675,4 @@
 	va = istate->cr_ifa;  /* faulting address */
 	
-	page_table_lock(AS, true);
 	t = page_mapping_find(AS, va, true);
 	ASSERT((t) && (t->p));
@@ -700,5 +691,4 @@
 		}
 	}
-	page_table_unlock(AS, true);
 }
 
@@ -716,5 +706,4 @@
 	va = istate->cr_ifa;  /* faulting address */
 	
-	page_table_lock(AS, true);
 	t = page_mapping_find(AS, va, true);
 	ASSERT((t) && (t->p));
@@ -733,5 +722,4 @@
 		}
 	}
-	page_table_unlock(AS, true);
 }
 
@@ -752,5 +740,4 @@
 	 * Assume a write to a read-only page.
 	 */
-	page_table_lock(AS, true);
 	t = page_mapping_find(AS, va, true);
 	ASSERT((t) && (t->p));
@@ -761,5 +748,4 @@
 		panic_memtrap(istate, PF_ACCESS_WRITE, va, NULL);
 	}
-	page_table_unlock(AS, true);
 }
 
@@ -777,5 +763,4 @@
 	va = istate->cr_ifa;  /* faulting address */
 	
-	page_table_lock(AS, true);
 	t = page_mapping_find(AS, va, true);
 	ASSERT(t);
@@ -790,7 +775,5 @@
 		else
 			dtc_pte_copy(t);
-		page_table_unlock(AS, true);
 	} else {
-		page_table_unlock(AS, true);
 		if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) {
 			fault_if_from_uspace(istate, "Page fault at %p.",
Index: kernel/arch/sparc64/src/mm/sun4u/tlb.c
===================================================================
--- kernel/arch/sparc64/src/mm/sun4u/tlb.c	(revision 50177dcd51d58a030da7707ce62ab9fad45123a6)
+++ kernel/arch/sparc64/src/mm/sun4u/tlb.c	(revision 9aed1447765df907632291e993be7acf559d0057)
@@ -206,5 +206,4 @@
 	pte_t *t;
 
-	page_table_lock(AS, true);
 	t = page_mapping_find(AS, page_16k, true);
 	if (t && PTE_EXECUTABLE(t)) {
@@ -218,5 +217,4 @@
 		itsb_pte_copy(t, index);
 #endif
-		page_table_unlock(AS, true);
 	} else {
 		/*
@@ -224,5 +222,4 @@
 		 * handler.
 		 */
-		page_table_unlock(AS, true);
 		if (as_page_fault(page_16k, PF_ACCESS_EXEC, istate) ==
 		    AS_PF_FAULT) {
@@ -274,5 +271,4 @@
 	}
 
-	page_table_lock(AS, true);
 	t = page_mapping_find(AS, page_16k, true);
 	if (t) {
@@ -286,5 +282,4 @@
 		dtsb_pte_copy(t, index, true);
 #endif
-		page_table_unlock(AS, true);
 	} else {
 		/*
@@ -292,5 +287,4 @@
 		 * handler.
 		 */		
-		page_table_unlock(AS, true);
 		if (as_page_fault(page_16k, PF_ACCESS_READ, istate) ==
 		    AS_PF_FAULT) {
@@ -318,5 +312,4 @@
 	index = tag.vpn % MMU_PAGES_PER_PAGE;	/* 16K-page emulation */
 
-	page_table_lock(AS, true);
 	t = page_mapping_find(AS, page_16k, true);
 	if (t && PTE_WRITABLE(t)) {
@@ -334,5 +327,4 @@
 		dtsb_pte_copy(t, index, false);
 #endif
-		page_table_unlock(AS, true);
 	} else {
 		/*
@@ -340,5 +332,4 @@
 		 * handler.
 		 */		
-		page_table_unlock(AS, true);
 		if (as_page_fault(page_16k, PF_ACCESS_WRITE, istate) ==
 		    AS_PF_FAULT) {
Index: kernel/arch/sparc64/src/mm/sun4v/tlb.c
===================================================================
--- kernel/arch/sparc64/src/mm/sun4v/tlb.c	(revision 50177dcd51d58a030da7707ce62ab9fad45123a6)
+++ kernel/arch/sparc64/src/mm/sun4v/tlb.c	(revision 9aed1447765df907632291e993be7acf559d0057)
@@ -218,5 +218,4 @@
 	pte_t *t;
 
-	page_table_lock(AS, true);
 	t = page_mapping_find(AS, va, true);
 
@@ -231,5 +230,4 @@
 		itsb_pte_copy(t);
 #endif
-		page_table_unlock(AS, true);
 	} else {
 		/*
@@ -237,5 +235,4 @@
 		 * handler.
 		 */
-		page_table_unlock(AS, true);
 		if (as_page_fault(va, PF_ACCESS_EXEC, istate) == AS_PF_FAULT) {
 			do_fast_instruction_access_mmu_miss_fault(istate,
@@ -274,5 +271,4 @@
 	}
 
-	page_table_lock(AS, true);
 	t = page_mapping_find(AS, va, true);
 	if (t) {
@@ -286,5 +282,4 @@
 		dtsb_pte_copy(t, true);
 #endif
-		page_table_unlock(AS, true);
 	} else {
 		/*
@@ -292,5 +287,4 @@
 		 * handler.
 		 */		
-		page_table_unlock(AS, true);
 		if (as_page_fault(va, PF_ACCESS_READ, istate) == AS_PF_FAULT) {
 			do_fast_data_access_mmu_miss_fault(istate, page_and_ctx,
@@ -316,5 +310,4 @@
 	uint16_t ctx = DMISS_CONTEXT(page_and_ctx);
 
-	page_table_lock(AS, true);
 	t = page_mapping_find(AS, va, true);
 	if (t && PTE_WRITABLE(t)) {
@@ -331,5 +324,4 @@
 		dtsb_pte_copy(t, false);
 #endif
-		page_table_unlock(AS, true);
 	} else {
 		/*
@@ -337,5 +329,4 @@
 		 * handler.
 		 */		
-		page_table_unlock(AS, true);
 		if (as_page_fault(va, PF_ACCESS_WRITE, istate) == AS_PF_FAULT) {
 			do_fast_data_access_protection_fault(istate, page_and_ctx,
