linux/arch/powerpc
Benjamin Herrenschmidt 171aa2caaa powerpc/mm: Fix bugs in huge page hashing
There's a couple of nasty bugs lurking in our huge page hashing code.

First, we don't check the access permission atomically with setting
the _PAGE_BUSY bit, which means that the PTE value we end up using
for the hashing might be different than the one we have checked
the access permissions for.

We've seen cases where that leads us to try to use an invalidated
PTE for hashing, causing all sort of "interesting" issues.

Then, we also failed to set _PAGE_DIRTY on a write access.

Finally, a minor tweak but we should return 0 when we find the
PTE busy, in order to just re-execute the access, rather than 1
which means going to do_page_fault().

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---
2010-07-23 12:55:21 +10:00
..
boot Merge branch 'merge' of git://git.secretlab.ca/git/linux-2.6 2010-06-27 07:30:25 -07:00
configs powerpc: Disable CONFIG_SYSFS_DEPRECATED 2010-06-15 15:02:33 +10:00
include/asm Merge branch 'lmb-to-memblock' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2010-07-14 17:27:44 -07:00
kernel Merge branch 'lmb-to-memblock' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2010-07-14 17:27:44 -07:00
kvm KVM: powerpc: fix init/exit annotation 2010-06-09 18:39:09 +03:00
lib powerpc: Fix feature-fixup tests for gcc 4.5 2010-07-08 18:11:41 +10:00
math-emu powerpc/math-emu: Fix efp dependence 2009-03-11 06:00:08 -05:00
mm powerpc/mm: Fix bugs in huge page hashing 2010-07-23 12:55:21 +10:00
oprofile powerpc/oprofile: fix potential buffer overrun in op_model_cell.c 2010-06-07 11:18:56 +02:00
platforms lmb: rename to memblock 2010-07-14 17:14:00 +10:00
sysdev Merge branch 'lmb-to-memblock' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2010-07-14 17:27:44 -07:00
xmon powerpc: Mark some variables in the page fault path __read_mostly 2010-02-03 17:39:48 +11:00
Kconfig lmb: rename to memblock 2010-07-14 17:14:00 +10:00
Kconfig.debug powerpc: Unconditionally enabled irq stacks 2010-06-15 15:02:37 +10:00
Makefile powerpc: Fix module building for gcc 4.5 and 64 bit 2010-07-08 18:11:38 +10:00
relocs_check.pl powerpc: Check for unsupported relocs when using CONFIG_RELOCATABLE 2009-09-24 15:31:40 +10:00