[parisc-linux] Re: RFC: mmap patch
David S. Miller
davem@redhat.com
Sat, 08 Mar 2003 15:14:58 -0800 (PST)
Sorry, I think you've misunderstood the problem. This is
write() vs mmap(). We call flush_dcache_page() after the
write() -- but PA's flush_dcache_page() only flushes the
kernel's mapping of that page, not the user's. The question
is how to fix that.
Right, flush_dcache_page() must get rid of all instances of
the underlying physical data from the cache. This means all
kernel and user virtual mappings of the page.
Chips with a "flush physical page X" scheme can just do that,
others can flush the kernel virtual mapping then walk the
VMA list of user mappings and hit those one by one.