powerpc/mm/book3s-64: Use physical addresses in upper page table tree levels
authorPaul Mackerras <paulus@ozlabs.org>
Tue, 23 Feb 2016 02:36:17 +0000 (13:36 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 29 Feb 2016 09:34:34 +0000 (20:34 +1100)
commitc61a8843124e353f4ba27c073133868da00e0335
tree0454701b09a320be6186fcd4ed0447af3ee2b4ee
parentf1a9ae034a263d93ea408825afe699aebf37010a
powerpc/mm/book3s-64: Use physical addresses in upper page table tree levels

This changes the Linux page tables to store physical addresses
rather than kernel virtual addresses in the upper levels of the
tree (pgd, pud and pmd) for 64-bit Book 3S machines.

This also changes the hugepd pointers used to implement hugepages
when the base page size is 4k to store physical addresses rather than
virtual addresses (again just for 64-bit Book3S machines).

This frees up some high order bits, and will be needed with
PowerISA v3.0 machines which read the page table tree in hardware
in radix mode.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/book3s/64/hash-4k.h
arch/powerpc/include/asm/book3s/64/hash.h
arch/powerpc/include/asm/hugetlb.h
arch/powerpc/include/asm/nohash/64/pgtable.h
arch/powerpc/include/asm/page.h
arch/powerpc/include/asm/pgalloc-64.h
arch/powerpc/mm/hugetlbpage.c