| From 68accac392d859d24adcf1be3a90e41f978bd54c Mon Sep 17 00:00:00 2001 |
| From: Krzysztof Mazur <krzysiek@podlesie.net> |
| Date: Fri, 6 Nov 2015 14:18:36 +0100 |
| Subject: x86/setup: Fix low identity map for >= 2GB kernel range |
| |
| From: Krzysztof Mazur <krzysiek@podlesie.net> |
| |
| commit 68accac392d859d24adcf1be3a90e41f978bd54c upstream. |
| |
| The commit f5f3497cad8c extended the low identity mapping. However, if |
| the kernel uses more than 2 GB (VMSPLIT_2G_OPT or VMSPLIT_1G memory |
| split), the normal memory mapping is overwritten by the low identity |
| mapping causing a crash. To avoid overwritting, limit the low identity |
| map to cover only memory before kernel range (PAGE_OFFSET). |
| |
| Fixes: f5f3497cad8c "x86/setup: Extend low identity map to cover whole kernel range |
| Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net> |
| Cc: Andy Lutomirski <luto@amacapital.net> |
| Cc: Borislav Petkov <bp@alien8.de> |
| Cc: Laszlo Ersek <lersek@redhat.com> |
| Cc: Matt Fleming <matt.fleming@intel.com> |
| Cc: Paolo Bonzini <pbonzini@redhat.com> |
| Link: http://lkml.kernel.org/r/1446815916-22105-1-git-send-email-krzysiek@podlesie.net |
| Signed-off-by: Thomas Gleixner <tglx@linutronix.de> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/x86/kernel/setup.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/arch/x86/kernel/setup.c |
| +++ b/arch/x86/kernel/setup.c |
| @@ -1180,7 +1180,7 @@ void __init setup_arch(char **cmdline_p) |
| */ |
| clone_pgd_range(initial_page_table, |
| swapper_pg_dir + KERNEL_PGD_BOUNDARY, |
| - KERNEL_PGD_PTRS); |
| + min(KERNEL_PGD_PTRS, KERNEL_PGD_BOUNDARY)); |
| #endif |
| |
| tboot_probe(); |