Highmem issues with MMC filesystem

Catalin Marinas catalin.marinas at arm.com
Fri Mar 19 10:52:00 EDT 2010


> On Fri, Mar 19, 2010 at 02:41:17PM +0000, Catalin Marinas wrote:
> > On Thu, 2010-03-18 at 13:20 +0000, Nicolas Pitre wrote:
> > > The only way a highmem page can be unmapped is through kunmap_atomic()
> > > where an explicit __cpuc_flush_dcache_area() is performed, or through
> > > flush_all_zero_pkmaps() where flush_cache_kmaps() translates into
> > > flush_cache_all().
> >
> > The thing that I couldn't fully understand with the kunmap_atomic()
> > function is that there is a path (when kvaddr < FIXADDR_START) where no
> > cache flushing occurs. Can this not happen?
> 
> kunmap interfaces are not for cache flushing; the cache flushing is
> only there to ensure consistency when unmapping a mapping on VIVT CPUs.

I agree, but then why don't we conditionally call
__cpuc_flush_dcache_area() in kunmap_atomic() so that we avoid this
flush on non-aliasing VIPT?

-- 
Catalin




More information about the linux-arm-kernel mailing list