summaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/page_64.h
diff options
context:
space:
mode:
authorKirill A. Shutemov2018-02-14 12:16:50 +0100
committerIngo Molnar2018-02-14 13:11:13 +0100
commiteedb92abb9bb03ef21442614a6f5867eaac6e77f (patch)
tree7357842772983f86aeafb8f1b03777e5b3fd79f2 /arch/x86/include/asm/page_64.h
parentmm/zsmalloc: Prepare to variable MAX_PHYSMEM_BITS (diff)
downloadkernel-qcow2-linux-eedb92abb9bb03ef21442614a6f5867eaac6e77f.tar.gz
kernel-qcow2-linux-eedb92abb9bb03ef21442614a6f5867eaac6e77f.tar.xz
kernel-qcow2-linux-eedb92abb9bb03ef21442614a6f5867eaac6e77f.zip
x86/mm: Make virtual memory layout dynamic for CONFIG_X86_5LEVEL=y
We need to be able to adjust virtual memory layout at runtime to be able to switch between 4- and 5-level paging at boot-time. KASLR already has movable __VMALLOC_BASE, __VMEMMAP_BASE and __PAGE_OFFSET. Let's re-use it. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Borislav Petkov <bp@suse.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/20180214111656.88514-4-kirill.shutemov@linux.intel.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/include/asm/page_64.h')
-rw-r--r--arch/x86/include/asm/page_64.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h
index 4baa6bceb232..096378650142 100644
--- a/arch/x86/include/asm/page_64.h
+++ b/arch/x86/include/asm/page_64.h
@@ -11,6 +11,10 @@
extern unsigned long max_pfn;
extern unsigned long phys_base;
+extern unsigned long page_offset_base;
+extern unsigned long vmalloc_base;
+extern unsigned long vmemmap_base;
+
static inline unsigned long __phys_addr_nodebug(unsigned long x)
{
unsigned long y = x - __START_KERNEL_map;