Index: kernel/arch/sparc64/src/mm/page.c
===================================================================
--- kernel/arch/sparc64/src/mm/page.c	(revision e16e0d595cccccd7668bd8111478ac903c1b3be3)
+++ kernel/arch/sparc64/src/mm/page.c	(revision 5eb90cbf3afe6afd7b4236a6cc328c7c634b9ff6)
@@ -43,20 +43,4 @@
 #include <config.h>
 
-#ifdef CONFIG_SMP
-/** Entries locked in DTLB of BSP.
- *
- * Application processors need to have the same locked entries in their DTLBs as
- * the bootstrap processor.
- */
-static struct {
-	uintptr_t virt_page;
-	uintptr_t phys_page;
-	int pagesize_code;
-} bsp_locked_dtlb_entry[DTLB_MAX_LOCKED_ENTRIES];
-
-/** Number of entries in bsp_locked_dtlb_entry array. */
-static count_t bsp_locked_dtlb_entries = 0;
-#endif /* CONFIG_SMP */
-
 /** Perform sparc64 specific initialization of paging. */
 void page_arch_init(void)
@@ -64,20 +48,4 @@
 	if (config.cpu_active == 1) {
 		page_mapping_operations = &ht_mapping_operations;
-	} else {
-
-#ifdef CONFIG_SMP
-		unsigned int i;
-
-		/*
-		 * Copy locked DTLB entries from the BSP.
-		 */		
-		for (i = 0; i < bsp_locked_dtlb_entries; i++) {
-			dtlb_insert_mapping(bsp_locked_dtlb_entry[i].virt_page,
-			    bsp_locked_dtlb_entry[i].phys_page,
-			    bsp_locked_dtlb_entry[i].pagesize_code, true,
-			    false);
-		}
-#endif	
-
 	}
 }
@@ -98,69 +66,5 @@
 uintptr_t hw_map(uintptr_t physaddr, size_t size)
 {
-	unsigned int order;
-	unsigned int i;
-
-	ASSERT(config.cpu_active == 1);
-
-	struct {
-		int pagesize_code;
-		size_t increment;
-		count_t count;
-	} sizemap[] = {
-		{ PAGESIZE_8K, 0, 1 },				/* 8K */
-		{ PAGESIZE_8K, MMU_PAGE_SIZE, 2 },		/* 16K */
-		{ PAGESIZE_8K, MMU_PAGE_SIZE, 4 },		/* 32K */
-		{ PAGESIZE_64K, 0, 1},				/* 64K */
-		{ PAGESIZE_64K, 8 * MMU_PAGE_SIZE, 2 },		/* 128K */
-		{ PAGESIZE_64K, 8 * MMU_PAGE_SIZE, 4 },		/* 256K */
-		{ PAGESIZE_512K, 0, 1 },			/* 512K */
-		{ PAGESIZE_512K, 64 * MMU_PAGE_SIZE, 2 },	/* 1M */
-		{ PAGESIZE_512K, 64 * MMU_PAGE_SIZE, 4 },	/* 2M */
-		{ PAGESIZE_4M, 0, 1 },				/* 4M */
-		{ PAGESIZE_4M, 512 * MMU_PAGE_SIZE, 2 }		/* 8M */
-	};
-	
-	ASSERT(ALIGN_UP(physaddr, MMU_PAGE_SIZE) == physaddr);
-	ASSERT(size <= 8 * 1024 * 1024);
-	
-	if (size <= MMU_FRAME_SIZE)
-		order = 0;
-	else
-		order = (fnzb64(size - 1) + 1) - MMU_FRAME_WIDTH;
-
-	/*
-	 * Use virtual addresses that are beyond the limit of physical memory.
-	 * Thus, the physical address space will not be wasted by holes created
-	 * by frame_alloc().
-	 */
-	ASSERT(PA2KA(last_frame));
-	uintptr_t virtaddr = ALIGN_UP(PA2KA(last_frame),
-	    1 << (order + FRAME_WIDTH));
-	last_frame = ALIGN_UP(KA2PA(virtaddr) + size,
-	    1 << (order + FRAME_WIDTH));
-	
-	for (i = 0; i < sizemap[order].count; i++) {
-		/*
-		 * First, insert the mapping into DTLB.
-		 */
-		dtlb_insert_mapping(virtaddr + i * sizemap[order].increment,
-		    physaddr + i * sizemap[order].increment,
-		    sizemap[order].pagesize_code, true, false);
-	
-#ifdef CONFIG_SMP
-		/*
-		 * Second, save the information about the mapping for APs.
-		 */
-		bsp_locked_dtlb_entry[bsp_locked_dtlb_entries].virt_page =
-		    virtaddr + i * sizemap[order].increment;
-		bsp_locked_dtlb_entry[bsp_locked_dtlb_entries].phys_page =
-		    physaddr + i * sizemap[order].increment;
-		bsp_locked_dtlb_entry[bsp_locked_dtlb_entries].pagesize_code =
-		    sizemap[order].pagesize_code;
-		bsp_locked_dtlb_entries++;
-#endif
-	}
-	
-	return virtaddr;
+	return PA2KA(physaddr);
 }
 
Index: uspace/srv/obio/obio.c
===================================================================
--- uspace/srv/obio/obio.c	(revision e16e0d595cccccd7668bd8111478ac903c1b3be3)
+++ uspace/srv/obio/obio.c	(revision 5eb90cbf3afe6afd7b4236a6cc328c7c634b9ff6)
@@ -95,5 +95,5 @@
 		case BUS_CLEAR_INTERRUPT:
 			inr = IPC_GET_ARG1(call);
-			base_virt[OBIO_CIR(inr & INO_MASK)] = 0;
+			base_virt[OBIO_CIR(inr) & INO_MASK] = 0;
 			ipc_answer_0(callid, EOK);
 			break;
