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