Date: Tue, 30 Oct 2012 23:12:20 +0100 From: Giovanni Trematerra <gianni@freebsd.org> To: freebsd-arm@freebsd.org Cc: cognet@freebsd.org Subject: [PATCH] use vtophys instead of pmap_kextract Message-ID: <CACfq093f9w8BXOboHV0jy6OMKjCdVaD5BJPT%2BgZ9bn%2ByuQJHbg@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CACfq093f9w8BXOboHV0jy6OMKjCdVaD5BJPT%2BgZ9bn%2ByuQJHbg>