arm64: mm: move vmemmap region right below the linear region
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Wed, 30 Mar 2016 14:46:00 +0000 (16:46 +0200)
committerWill Deacon <will.deacon@arm.com>
Thu, 14 Apr 2016 15:31:49 +0000 (16:31 +0100)
commit3e1907d5bf5a1e0b182ee599f92586f0165029e2
tree1882d1a6d4532815ebe3090d12d3920f0cef3243
parente44308e62e19b42810207780a2a32148af0cb5d9
arm64: mm: move vmemmap region right below the linear region

This moves the vmemmap region right below PAGE_OFFSET, aka the start
of the linear region, and redefines its size to be a power of two.
Due to the placement of PAGE_OFFSET in the middle of the address space,
whose size is a power of two as well, this guarantees that virt to
page conversions and vice versa can be implemented efficiently, by
masking and shifting rather than ordinary arithmetic.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/include/asm/memory.h
arch/arm64/include/asm/pgtable.h
arch/arm64/mm/dump.c
arch/arm64/mm/init.c