[parisc-linux] Fwd: Problems with raw interface.

David S. Miller davem@redhat.com
Fri, 26 Sep 2003 05:38:05 -0700


On Fri, 26 Sep 2003 13:20:23 +0100
Matthew Wilcox <willy@debian.org> wrote:

> OK, so it *might* be a page cache page, but isn't necessarily.  So we
> need to call *both* flush_dcache_page() and flush_cache_range(), right?

I'm starting to think that flush_dcache_page() needs to take care
of this.

Santosh remarked that flush_dcache_page() doesn't get the user virtual
address, but that is not needed.  From the page you can walk the mmap()s
and flush the mapping in each address space it is contained within.

And you absolutely must flush each address space, not just the one currently
doing the raw I/O request.

In that light, doing a flush_cache_range() with a specific VMA (2.6.x)
or MM (2.4.x) is totally illogical here.