On Fri, Jan 21, 2011 at 01:37:15PM -0800, Brent DeGraaf wrote: > Russell, > > Thanks for your comments. Yes, reverting is OK. The writel's are doing the > controller write after the barrier so even though it'll be a little > slower, it will be correct. > > Regarding the "unnecessary" pre-invalidate, yeah, I misspoke. I meant > unnecessary POST-invalidates for non-speculative cpus. I just checked and > it looks like someone's already put a "FIXME" in the current 2.6.37 source > for those. We don't do post-invalidates either. We may call into the processor specific code, but the sum of what they do for pre-ARMv6 CPUs is as follows: arch/arm/mm/proc-arm1020e.S:ENTRY(arm1020e_dma_unmap_area) arch/arm/mm/proc-arm1020e.S- mov pc, lr arch/arm/mm/proc-arm1020e.S-ENDPROC(arm1020e_dma_unmap_area) -- arch/arm/mm/proc-arm1020.S:ENTRY(arm1020_dma_unmap_area) arch/arm/mm/proc-arm1020.S- mov pc, lr arch/arm/mm/proc-arm1020.S-ENDPROC(arm1020_dma_unmap_area) -- arch/arm/mm/proc-arm1022.S:ENTRY(arm1022_dma_unmap_area) arch/arm/mm/proc-arm1022.S- mov pc, lr arch/arm/mm/proc-arm1022.S-ENDPROC(arm1022_dma_unmap_area) -- arch/arm/mm/proc-arm1026.S:ENTRY(arm1026_dma_unmap_area) arch/arm/mm/proc-arm1026.S- mov pc, lr arch/arm/mm/proc-arm1026.S-ENDPROC(arm1026_dma_unmap_area) -- arch/arm/mm/proc-arm920.S:ENTRY(arm920_dma_unmap_area) arch/arm/mm/proc-arm920.S- mov pc, lr arch/arm/mm/proc-arm920.S-ENDPROC(arm920_dma_unmap_area) -- arch/arm/mm/proc-arm922.S:ENTRY(arm922_dma_unmap_area) arch/arm/mm/proc-arm922.S- mov pc, lr arch/arm/mm/proc-arm922.S-ENDPROC(arm922_dma_unmap_area) -- arch/arm/mm/proc-arm925.S:ENTRY(arm925_dma_unmap_area) arch/arm/mm/proc-arm925.S- mov pc, lr arch/arm/mm/proc-arm925.S-ENDPROC(arm925_dma_unmap_area) -- arch/arm/mm/proc-arm926.S:ENTRY(arm926_dma_unmap_area) arch/arm/mm/proc-arm926.S- mov pc, lr arch/arm/mm/proc-arm926.S-ENDPROC(arm926_dma_unmap_area) -- arch/arm/mm/proc-arm940.S:ENTRY(arm940_dma_unmap_area) arch/arm/mm/proc-arm940.S- mov pc, lr arch/arm/mm/proc-arm940.S-ENDPROC(arm940_dma_unmap_area) -- arch/arm/mm/proc-arm946.S:ENTRY(arm946_dma_unmap_area) arch/arm/mm/proc-arm946.S- mov pc, lr arch/arm/mm/proc-arm946.S-ENDPROC(arm946_dma_unmap_area) -- arch/arm/mm/proc-feroceon.S:ENTRY(feroceon_dma_unmap_area) arch/arm/mm/proc-feroceon.S- mov pc, lr arch/arm/mm/proc-feroceon.S-ENDPROC(feroceon_dma_unmap_area) -- arch/arm/mm/proc-mohawk.S:ENTRY(mohawk_dma_unmap_area) arch/arm/mm/proc-mohawk.S- mov pc, lr arch/arm/mm/proc-mohawk.S-ENDPROC(mohawk_dma_unmap_area) -- arch/arm/mm/proc-xsc3.S:ENTRY(xsc3_dma_unmap_area) arch/arm/mm/proc-xsc3.S- mov pc, lr arch/arm/mm/proc-xsc3.S-ENDPROC(xsc3_dma_unmap_area) -- arch/arm/mm/proc-xscale.S:ENTRY(xscale_dma_unmap_area) arch/arm/mm/proc-xscale.S- mov pc, lr arch/arm/mm/proc-xscale.S-ENDPROC(xscale_dma_unmap_area) So we don't do anything for non-speculative prefetching CPUs on unmap. -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html