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

SANTOSH ABRAHAM santosha@india.hp.com
Fri, 26 Sep 2003 18:41:41 +0530 (IST)


> 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.

Are you talking about the page->mapping->{i_mmap_shared, i_mmap} lists ?
If so, this is already handled in __flush_dcache_page ().

The problem in this case is page->mapping is NULL. 

> 
> 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.
>