[parisc-linux] Re: Problems with kernel mmap (failing
tst-mmap-eofsync in glibc on parisc)
David S. Miller
davem@redhat.com
Fri, 22 Aug 2003 11:01:44 -0700
On Fri, 22 Aug 2003 10:36:34 -0700
"David S. Miller" <davem@redhat.com> wrote:
> On Fri, 22 Aug 2003 18:41:03 +0100
> Matthew Wilcox <willy@debian.org> wrote:
>
> > Uhm. So what happens when the user has stored into the page and now
> > the kernel wants to read from it? There's still data in the cache for
> > the user mapping that's non-coherent with the kernel mapping.
>
> I see. This causes the page cache read flush_dcache_page() call
> not to trigger.
Wait, I'm confused again.
How can the user "write" to the mmap()'d side if PROT_WRITE
was not specified? That is the only case in which the proposed
patch could make a difference, we check this:
switch (flags & MAP_TYPE) {
case MAP_SHARED:
if ((prot&PROT_WRITE) && !(file->f_mode&FMODE_WRITE))
return -EACCES;
Therefore if the user can write to the page, file->f_mode will
have the write bit set too.
So the proposed patch looks bogus to me.