On Wed, Aug 26, 2009 at 10:22:11AM -0700, David Xiao wrote: > Sorry for the confusion, page_address() indeed only returns kernel > virtual address; and in order to support VIVT cache maintenance for the > user space mappings, the dma_map_sg/dma_map_page() functions or even the > struct scatterlist do seem to have to be modified to pass in virtual > address, I think. That's the wrong answer. When DMA happens (and therefore these functions are called) the userspace context could already have been switched away, which means that any userspace address information is useless. Adding support to the existing DMA API functions so they can be used for userspace mapped pages is simply the wrong approach - most users of those functions are not concerned with userspace mapped pages at all, and adding that burden onto all those users is clearly sub-optimal. The right answer? I don't think there is one (see my previous mail.) -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html