powerpc/mm: Fix bug in pagetable cache cleanup with CONFIG_PPC_SUBPAGE_PROT
authorDavid Gibson <david@gibson.dropbear.id.au>
Mon, 23 Nov 2009 19:31:14 +0000 (19:31 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 27 Nov 2009 03:24:29 +0000 (14:24 +1100)
commitc045256d146800ea1d741a8e9e377dada6b7e195
tree4369d1f7c0859a373321c9b3b2d2a101a63282fc
parent1e43bee9c70654b4d52472c19e5f0a0cc18b6b36
powerpc/mm: Fix bug in pagetable cache cleanup with CONFIG_PPC_SUBPAGE_PROT

Commit a0668cdc154e54bf0c85182e0535eea237d53146 cleans up the handling
of kmem_caches for allocating various levels of pagetables.
Unfortunately, it conflicts badly with CONFIG_PPC_SUBPAGE_PROT, due to
the latter's cleverly hidden technique of adding some extra allocation
space to the top level page directory to store the extra information
it needs.

Since that extra allocation really doesn't fit into the cleaned up
page directory allocating scheme, this patch alters
CONFIG_PPC_SUBPAGE_PROT to instead allocate its struct
subpage_prot_table as part of the mm_context_t.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/mmu-hash64.h
arch/powerpc/include/asm/pgalloc-64.h
arch/powerpc/include/asm/pte-hash64-64k.h
arch/powerpc/mm/hash_utils_64.c
arch/powerpc/mm/mmu_context_hash64.c
arch/powerpc/mm/subpage-prot.c