]> git.baikalelectronics.ru Git - kernel.git/commit
[PATCH] ppc64: Fix huge pages MMU mapping bug
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 23 Sep 2005 20:24:07 +0000 (13:24 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 23 Sep 2005 20:35:36 +0000 (13:35 -0700)
commitb33de9443edd3a3c7816abae6f0fe7f9117c1ae4
treed9551fb8d2d610840e5538760ac5ba61c8c32c7e
parent003db7936a560b57757442c9d2c13580993d6d43
[PATCH] ppc64: Fix huge pages MMU mapping bug

Current kernel has a couple of sneaky bugs in the ppc64 hugetlb code that
cause huge pages to be potentially left stale in the hash table and TLBs
(improperly invalidated), with all the nasty consequences that can have.

One is that we forgot to set the "secondary" bit in the hash PTEs when
hashing a huge page in the secondary bucket (fortunately very rare).

The other one is on non-LPAR machines (like Apple G5s), flush_hash_range()
which is used to flush a batch of PTEs simply did not work for huge pages.
Historically, our huge page code didn't batch, but this was changed without
fixing this routine.  This patch fixes both.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/ppc64/mm/hash_native.c
arch/ppc64/mm/hugetlbpage.c