Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1264011

[PATCH] x86/setup: fix low identity map for >= 2GB kernel range

From Krzysztof Mazur <krzysiek@podlesie.net>
Newsgroups linux.kernel
Subject [PATCH] x86/setup: fix low identity map for >= 2GB kernel range
Date 2015-11-06 14:30 +0100
Message-ID <qrPfC-52O-35@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


The commit f5f3497cad8c8416a74b9aaceb127908755d020a (x86/setup: Extend
low identity map to cover whole kernel range) 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 crash. To avoid overwritting, limit the
low identity map to cover only memory before kernel range (PAGE_OFFSET).

Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
---
The bug can be also fixed by copying identity mapping before copying
kernel address range, but this fix is smaller.

It might be also helpful to add a warning, if the low identity mapping
is truncated due to kernel mapping (KERNEL_PGD_BOUNDARY < KERNEL_PGD_PTRS).

 arch/x86/kernel/setup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index a3cccbf..37c8ea8 100644
--- 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();
-- 
2.6.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

[PATCH] x86/setup: fix low identity map for >= 2GB kernel range Krzysztof Mazur <krzysiek@podlesie.net> - 2015-11-06 14:30 +0100
  Re: [PATCH] x86/setup: fix low identity map for >= 2GB kernel range Borislav Petkov <bp@alien8.de> - 2015-11-06 14:30 +0100
    Re: [PATCH] x86/setup: fix low identity map for >= 2GB kernel range Krzysztof Mazur <krzysiek@podlesie.net> - 2015-11-06 15:20 +0100
      Re: [PATCH] x86/setup: fix low identity map for >= 2GB kernel range Paolo Bonzini <pbonzini@redhat.com> - 2015-11-06 16:10 +0100
      Re: [PATCH] x86/setup: fix low identity map for >= 2GB kernel range Matt Fleming <matt@codeblueprint.co.uk> - 2015-11-07 10:50 +0100
  [tip:x86/urgent] x86/setup: Fix low identity map for >=   2GB kernel range tip-bot for Krzysztof Mazur <tipbot@zytor.com> - 2015-11-07 10:50 +0100

csiph-web