linux-stable-rt/arch/ppc64/mm
Benjamin Herrenschmidt 5d96551541 [PATCH] ppc64: Fix pages marked dirty abusively
While working on 64K pages, I found this little buglet in our
update_mmu_cache() implementation.

The code calls __hash_page() passing it an "access" parameter (the type
of access that triggers the hash) containing the bits _PAGE_RW and
_PAGE_USER of the linux PTE.  The latter is useless in this case and the
former is wrong.  In fact, if we have a writeable PTE and we pass
_PAGE_RW to hash_page(), it will set _PAGE_DIRTY (since we track dirty
that way, by hash faulting !dirty) which is not what we want.

In fact, the correct fix is to always pass 0. That means that only
read-only or already dirty read write PTEs will be preloaded. The
(hopefully rare) case of a non dirty read write PTE can't be preloaded
this way, it will have to fault in hash_page on the actual access.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-10-21 12:17:43 -07:00
..
Makefile
fault.c [PATCH] ppc64: build fix 2005-09-17 11:50:01 -07:00
hash_low.S kbuild: m68k,parisc,ppc,ppc64,s390,xtensa use generic asm-offsets.h support 2005-09-09 20:57:26 +02:00
hash_native.c [PATCH] ppc64: More hugepage fixes 2005-09-28 07:46:42 -07:00
hash_utils.c [PATCH] ppc64: Remove physbase from the lmb_property struct 2005-08-29 10:53:37 +10:00
hugetlbpage.c [PATCH] ppc64: Fix huge pages MMU mapping bug 2005-09-23 13:35:36 -07:00
imalloc.c [PATCH] Four level pagetables for ppc64 2005-08-29 10:53:31 +10:00
init.c [PATCH] ppc64: Fix pages marked dirty abusively 2005-10-21 12:17:43 -07:00
mmap.c
numa.c [PATCH] SPARSEMEM EXTREME 2005-09-05 00:05:38 -07:00
slb.c [PATCH] Invert sense of SLB class bit 2005-09-06 16:57:46 +10:00
slb_low.S kbuild: m68k,parisc,ppc,ppc64,s390,xtensa use generic asm-offsets.h support 2005-09-09 20:57:26 +02:00
stab.c
tlb.c [PATCH] ppc64: More hugepage fixes 2005-09-28 07:46:42 -07:00