[PATCH] use vtophys instead of pmap_kextract

Giovanni Trematerra gianni at freebsd.org
Tue Oct 30 22:12:22 UTC 2012


Hi,
could you please review and commit the patch below?

The patch changes the calls to pmap_kextract in vtophys macro.
This also fixes a compiler warning when SMP is enabled to Marvel
ARMADA XP boards.

Thank you

--
Gianni

Index: sys/arm/arm/busdma_machdep-v6.c
===================================================================
--- sys/arm/arm/busdma_machdep-v6.c	(revision 242212)
+++ sys/arm/arm/busdma_machdep-v6.c	(working copy)
@@ -670,7 +670,7 @@ _bus_dmamap_count_pages(bus_dma_tag_t dmat, bus_dm

 		while (vaddr < vendaddr) {
 			if (__predict_true(map->pmap == pmap_kernel()))
-				paddr = pmap_kextract(vaddr);
+				paddr = vtophys(vaddr);
 			else
 				paddr = pmap_extract(map->pmap, vaddr);
 			if (((dmat->flags & BUS_DMA_COULD_BOUNCE) != 0) &&
@@ -748,7 +748,7 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat,
 		 * Get the physical address for this segment.
 		 */
 		if (__predict_true(map->pmap == pmap_kernel()))
-			curaddr = pmap_kextract(vaddr);
+			curaddr = vtophys(vaddr);
 		else
 			curaddr = pmap_extract(map->pmap, vaddr);

@@ -1424,7 +1424,7 @@ alloc_bounce_pages(bus_dma_tag_t dmat, u_int numpa
 			free(bpage, M_DEVBUF);
 			break;
 		}
-		bpage->busaddr = pmap_kextract(bpage->vaddr);
+		bpage->busaddr = vtophys(bpage->vaddr);
 		mtx_lock(&bounce_lock);
 		STAILQ_INSERT_TAIL(&bz->bounce_page_list, bpage, links);
 		total_bpages++;
Index: sys/arm/arm/busdma_machdep.c
===================================================================
--- sys/arm/arm/busdma_machdep.c	(revision 242212)
+++ sys/arm/arm/busdma_machdep.c	(working copy)
@@ -711,7 +711,7 @@ _bus_dmamap_count_pages(bus_dma_tag_t dmat, bus_dm

 		while (vaddr < vendaddr) {
 			if (__predict_true(pmap == pmap_kernel()))
-				paddr = pmap_kextract(vaddr);
+				paddr = vtophys(vaddr);
 			else
 				paddr = pmap_extract(pmap, vaddr);
 			if (((dmat->flags & BUS_DMA_COULD_BOUNCE) != 0) &&
@@ -1371,7 +1371,7 @@ alloc_bounce_pages(bus_dma_tag_t dmat, u_int numpa
 			free(bpage, M_DEVBUF);
 			break;
 		}
-		bpage->busaddr = pmap_kextract(bpage->vaddr);
+		bpage->busaddr = vtophys(bpage->vaddr);
 		bpage->vaddr_nocache = (vm_offset_t)arm_remap_nocache(
 		    (void *)bpage->vaddr, PAGE_SIZE);
 		mtx_lock(&bounce_lock);
Index: sys/arm/mv/armadaxp/armadaxp_mp.c
===================================================================
--- sys/arm/mv/armadaxp/armadaxp_mp.c	(revision 242212)
+++ sys/arm/mv/armadaxp/armadaxp_mp.c	(working copy)
@@ -179,7 +179,7 @@ platform_mp_start_ap(void)

 	for (cpu_num = 1; cpu_num < mp_ncpus; cpu_num++ )
 		bus_space_write_4(fdtbus_bs_tag, CPU_PMU(cpu_num), CPU_PMU_BOOT,
-		    pmap_kextract(mpentry));
+		    vtophys(mpentry));

 	cpu_idcache_wbinv_all();

Index: sys/arm/ti/omap4/omap4_mp.c
===================================================================
--- sys/arm/ti/omap4/omap4_mp.c	(revision 242379)
+++ sys/arm/ti/omap4/omap4_mp.c	(working copy)
@@ -75,7 +75,7 @@ platform_mp_start_ap(void)
 	cpu_idcache_wbinv_all();
 	cpu_l2cache_wbinv_all();
 	ti_smc0(0x200, 0xfffffdff, MODIFY_AUX_CORE_0);
-	ti_smc0(pmap_kextract((vm_offset_t)mpentry), 0, WRITE_AUX_CORE_1);
+	ti_smc0(vtophys(mpentry), 0, WRITE_AUX_CORE_1);
 	armv7_sev();
 	bus_space_unmap(fdtbus_bs_tag, scu_addr, 0x1000);
 }


More information about the freebsd-arm mailing list