aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2016-03-30 16:45:58 +0200
committerWill Deacon <will.deacon@arm.com>2016-04-14 16:31:49 +0100
commit22b6f3b0549be61a2d5fe8210ff7628e6d2d8185 (patch)
tree943dd62bba7674a41a3ed2177618cca4ee5d4539 /arch
parentarm64: mm: free __init memory via the linear mapping (diff)
downloadlinux-dev-22b6f3b0549be61a2d5fe8210ff7628e6d2d8185.tar.xz
linux-dev-22b6f3b0549be61a2d5fe8210ff7628e6d2d8185.zip
arm64: mm: avoid virt_to_page() translation for the zero page
The zero page is statically allocated, so grab its struct page pointer without using virt_to_page(), which will be restricted to the linear mapping later. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm64/include/asm/pgtable.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
index aa6106ac050c..377257a8d393 100644
--- a/arch/arm64/include/asm/pgtable.h
+++ b/arch/arm64/include/asm/pgtable.h
@@ -57,7 +57,7 @@ extern void __pgd_error(const char *file, int line, unsigned long val);
* for zero-mapped memory areas etc..
*/
extern unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)];
-#define ZERO_PAGE(vaddr) virt_to_page(empty_zero_page)
+#define ZERO_PAGE(vaddr) pfn_to_page(PHYS_PFN(__pa(empty_zero_page)))
#define pte_ERROR(pte) __pte_error(__FILE__, __LINE__, pte_val(pte))