x86/mm/KASLR: Use only one PUD entry for real mode trampoline
authorBaoquan He <bhe@redhat.com>
Fri, 8 Mar 2019 02:56:15 +0000 (10:56 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 5 Apr 2019 20:13:00 +0000 (22:13 +0200)
commit0925dda5962e9b55e4d38a72eba93858f24bac41
treec29e171d4f7c4160292af2291b484dd4713eb69a
parent5e7a8ca319268a70a6c7c3c1fde5bea38e1e5539
x86/mm/KASLR: Use only one PUD entry for real mode trampoline

The current code builds identity mapping for the real mode trampoline by
borrowing page tables from the direct mapping section if KASLR is
enabled. It copies present entries of the first PUD table in 4-level paging
mode, or the first P4D table in 5-level paging mode.

However, there's only a very small area under low 1 MB reserved for the
real mode trampoline in reserve_real_mode() so it makes no sense to build
up a really large mapping for it.

Reduce it to one PUD (1GB) entry. This matches the randomization
granularity in 4-level paging mode and allows to change the randomization
granularity in 5-level paging mode from 512GB to 1GB later.

[ tglx: Massaged changelog and comments ]

Signed-off-by: Baoquan He <bhe@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: dave.hansen@linux.intel.com
Cc: luto@kernel.org
Cc: peterz@infradead.org
Cc: bp@alien8.de
Cc: hpa@zytor.com
Cc: keescook@chromium.org
Cc: thgarnie@google.com
Link: https://lkml.kernel.org/r/20190308025616.21440-2-bhe@redhat.com
arch/x86/mm/kaslr.c