arm64: mm: add functions to walk page tables by PA
authorMark Rutland <mark.rutland@arm.com>
Mon, 25 Jan 2016 11:45:04 +0000 (11:45 +0000)
committerAlex Shi <alex.shi@linaro.org>
Thu, 10 Nov 2016 08:16:58 +0000 (16:16 +0800)
commit3169fc9c6154b1c8672a0c2a6fb7932e23653722
tree1c8eae5fa4037c9afa67fbaee6eff0ab08f8f1a9
parent03f3f03d454da21b61d6a18575d909b035fa80b2
arm64: mm: add functions to walk page tables by PA

To allow us to walk tables allocated into the fixmap, we need to acquire
the physical address of a page, rather than the virtual address in the
linear map.

This patch adds new p??_page_paddr and p??_offset_phys functions to
acquire the physical address of a next-level table, and changes
p??_offset* into macros which simply convert this to a linear map VA.
This renders p??_page_vaddr unused, and hence they are removed.

At the pgd level, a new pgd_offset_raw function is added to find the
relevant PGD entry given the base of a PGD and a virtual address.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Tested-by: Jeremy Linton <jeremy.linton@arm.com>
Cc: Laura Abbott <labbott@fedoraproject.org>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
(cherry picked from commit dca56dca7124709f3dfca81afe61b4d98eb9cacf)
Signed-off-by: Alex Shi <alex.shi@linaro.org>
arch/arm64/include/asm/pgtable.h