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

Santosh Abraham santosh.abraham@hp.com
Thu, 25 Sep 2003 16:08:55 +0530


The problem seems to be with the flush_dcache_page () routine in
asm-parisc/pgalloc.h.  The routine does not handle the case when
page->mapping == NULL.  It simply ends up calling __flush_dcache_page ()
which only flushes out the cache lines corresponding to the kernel VA.

The cache lines corresponding to the user VA remain unaffected.  In order
for
the user cache lines to be flushed a call to flush_cache_page () or
flush_user_dcache_range ()
must be made.

In order to do this the flush_dcache_page () interface may need to be
modified to take in a user VA as an argument.

If this is not feasible we could as a hack check for page->mapping == NULL
in flush_dcache_page () and call flush_data_cache().  This would be very
expensive.

Also, does'nt __flush_dcache_page () need to have a for loop for "i_mmap"
similar to the one for "i_mmap_shared" ?

thanks,
santosh.